Woher weiß ein Thread, dass ein anderer Thread beendet ist? Die Thread -Klasse bietet eine Möglichkeit, diese Frage zu beantworten.
Es gibt zwei Möglichkeiten, um festzustellen, ob ein Faden endet. Erstens kann ISALIVE () im Thread aufgerufen werden. Diese Methode wird durch Thread definiert und ihre übliche Form lautet wie folgt:
endgültig boolean iSalive ()
Wenn der angerufene Thread noch ausgeführt wird, gibt die ISALIVE () -Methode wahr zurück, und wenn nicht, falsch. ISALIVE () wird jedoch selten verwendet.
Die endgültige Leere Join () wirft unterbrochene Ausnahme aus
Diese Methode wartet, bis der angerufene Thread endet. Dieser Name stammt aus dem Konzept, bei dem ein Thread warten muss, bis der angegebene Thread teilnimmt. Die zusätzliche Form von Join () ermöglicht es, eine maximale Zeit zu definieren, um auf das Ende des angegebenen Threads zu warten. Unten finden Sie eine verbesserte Version des vorherigen Beispiels. Verwenden Sie Joy (), um sicherzustellen, dass der Hauptfaden endet. In ähnlicher Weise zeigt es auch die iSalive () -Methode.
// join () auf Threads warten. System .out.println ("neuer Thread:" + T); 5; Unterbrecher Ted. ");} System.out.println (Name +" Exiting. ");}} Klasse Demojoin {public static void main (String args []) {newThread ob1 = new Newthread (" eins "); NewThread OB2 = new thread ("zwei"); Thread Two lebt: "+ ob2.t.isalive ()); System.out.println (" Thread Three ist lebendig: "+ ob3.t.isalive ()); // Warten Sie, bis Threads versuchen, den Versuch zu beenden. out. ("Main Thread unterbrochen"); ist lebendig ()); Die Programmausgabe ist wie folgt:
Neuer Thread: Thread [Eins, 5, Haupt] neuer Thread: Thread [zwei, 5, Haupt] neu Damit Fäden fertig sind. Eins: 5two: 5THRE: 5one: 4two: 4: 4One: 3two: 3THREE: 3one: 2two: 2.Three: 2one: 1two: 1THREE: 1TWO Exiting.Three. Zwei lebendig: Falshhread Three lebt: Falsemain -Thread aus.
Wie Sie sehen können, endet nach dem Aufrufen von Join () die Ausführung.