Die wait-notify-Prozedur eines Objekts ist für Anwendungen, die auf das Eintreten bestimmter Bedingungen warten müssen wichtig. Hier eine Möglichkeit, wie man die wait-notify-Routine vereinfachen kann, um sie bei der Request-Bearbeitung für Multithread-Anwendungen zu verwenden.
Erweitern der Warte-Routine
Im Zusammenhang mit Multithreading sollte man die Object.wait(timeout)-Methode zur Durchführung des wait-notify verwenden. Leider liefert diese Methode keine Informationen darüber, ob der Monitor eines Objekts von einem anderen Thread benachrichtigt wurde oder es ein Time-out gab. In einigen Fällen ist dies nicht besonders wichtig, in anderen aber schon. Beispielsweise muss man vielleicht eine Anweisung ausführen, die unbegrenzte Zeit dauern kann, und will seine Anwendung vor dem Blockieren bewahren. Eine Lösung besteht darin, eine zeitaufwendige Anweisung in einem separaten Thread auszuführen zu lassen und zu warten, bis diese abgeschlossen ist oder wegen Zeitüberschreitung abgebrochen wird (Time-out). Ganz allgemein gesagt sollte man seine Anwendung mit einigen Warte- und Benachrichtigungs-Funktionen ausstatten, damit sie wartet, bis ein bestimmter Zustand erreicht ist, oder eine Timeout-Exception auslöst wird, wenn eine vorgegebene Zeitspanne überschritten ist. Eine naheliegende Implementierung sieht so aus:
Da man einen solchen Programmcode an vielen Stellen benötigt, bietet es sich an, dieses Codestück zur Wiederverwendung in einer separaten Klasse zu verpacken: TimedWait (Listing A).
Die abstrakte Klasse in Listing A wartet auf das Eintreten eines Ereignisses oder auf das Verstreichen einer bestimmten Zeitspanne. So kann man das vorige Beispiel durch die folgende Zeile ersetzen:
Page: 1 2
Das jüngste Update bringt insgesamt zwölf Fixes. Schadcode lässt sich unter Umständen ohne Interaktion mit…
Eine softwarebasierte Workstation soll es Ingenieuren erlauben, sämtliche Steuerungen zentral zu verwalten. Pilotkunde ist Ford.
Kryptodiebstahl und finanzieller Gewinn sind laut ESET-Forschungsbericht die vorrangigen neuen Ziele.
Schwachstellen aus der ThroughTek Kaylay-IoT-Plattform. Dringend Update-Status der IoT-Geräte prüfen.
Fast acht Milliarden Euro fließen in die deutsche Region der AWS European Sovereign Cloud. Das…
Im Rahmen der umfassenden Digitalisierung der Bundeswehr ersetzen Electronic Knee Boards die herkömmlichen Handbücher von…