Fügen Sie zuerst den Code hinzu
Erstellen Sie einen neuen Thread, der Code ist wie folgt:
paket com.thread.test; public class mythread erweitert thread {private String name; public myThread (String name) {this.name = name; } @Override public void run () {für (int i = 0; i <100; i ++) {System.out.println (Name+"["+i+"]"); } super.run (); }}Erstellen Sie dann eine neue Testklasse, der Code lautet wie folgt:
Paket com.thread.test;/** 0-50 führt den Haupt-Thread aus, 50-100 führt den A-Thread aus, und der Haupt-Thread wird weiterhin ausgeführt, nachdem der A-Thread vollständig ausgeführt wurde*/public class ThreadDemo {public static void main (String [] args) {mythead t = new mythread ("a"); t.start (); für (int i = 0; i <100; i ++) {if (i> 50) {try {t.join (); } catch (interruptedException e) {e.printstacktrace (); }} System.out.println ("Hauptsthread"+"["+i+"]"); }}}Das Folgende ist eine Erklärung der Join -Methode in Thread in der Java -Plattform SE8 API:
Public Final Leere Join (Long Millis) wirft in den meisten Millis -Millions -Millisekunden unterbrochen, damit dieser Thread sterben kann. Eine Auszeit von 0 bedeutet, ewig zu warten. Diese Implementierung verwendet eine Schleife davon. Als Thread wird die mis.notifyall -Methode aufgerufen. Es wird empfohlen, dass Anwendungen keine Wartezeit, Benachrichtigung oder Benachrichtigung über Thread -Instanzen verwenden. Parameter: Millis - Die Zeit zum Warten in Millionen -Sekunden -Würfen: IllegalArgumentException - Wenn der Wert von Millis negativ unterbrochen ist -, wenn ein Thread den aktuellen Thread unterbrochen hat. Der unterbrochene Status des aktuellen Threads wird gelöscht, wenn diese Ausnahme ausgelöst wird.
Fügen Sie zuerst den Code hinzu
Erstellen Sie einen neuen Thread, der Code ist wie folgt:
paket com.thread.test; public class mythread erweitert thread {private String name; public myThread (String name) {this.name = name; } @Override public void run () {für (int i = 0; i <100; i ++) {System.out.println (Name+"["+i+"]"); } super.run (); }}Erstellen Sie dann eine neue Testklasse, der Code lautet wie folgt:
Paket com.thread.test;/** 0-50 führt den Haupt-Thread aus, 50-100 führt den A-Thread aus, und der Haupt-Thread wird weiterhin ausgeführt, nachdem der A-Thread vollständig ausgeführt wurde*/public class ThreadDemo {public static void main (String [] args) {mythead t = new mythread ("a"); t.start (); für (int i = 0; i <100; i ++) {if (i> 50) {try {t.join (); } catch (interruptedException e) {e.printstacktrace (); }} System.out.println ("Hauptsthread"+"["+i+"]"); }}}Das Folgende ist eine Erklärung der Join -Methode in Thread in der Java -Plattform SE8 API:
Public Final Leere Join (Long Millis) wirft in den meisten Millis -Millions -Millisekunden unterbrochen, damit dieser Thread sterben kann. Eine Auszeit von 0 bedeutet, ewig zu warten. Diese Implementierung verwendet eine Schleife davon. Als Thread wird die mis.notifyall -Methode aufgerufen. Es wird empfohlen, dass Anwendungen keine Wartezeit, Benachrichtigung oder Benachrichtigung über Thread -Instanzen verwenden. Parameter: Millis - Die Zeit zum Warten in Millionen -Sekunden -Würfen: IllegalArgumentException - Wenn der Wert von Millis negativ unterbrochen ist -, wenn ein Thread den aktuellen Thread unterbrochen hat. Der unterbrochene Status des aktuellen Threads wird gelöscht, wenn diese Ausnahme ausgelöst wird.
Mein eigenes Verständnis ist, dass er den Thread mit der Join -Methode gewaltsam eingeht, und andere Threads warten, bis der Thread vollständig ausgeführt wird, bevor sie eingegeben werden.