Ajouter d'abord le code
Créez un nouveau thread, le code est le suivant:
package com.thread.test; public class Mythread étend Thread {private String Name; public mythread (String name) {this.name = name; } @Override public void run () {for (int i = 0; i <100; i ++) {System.out.println (name + "[" + i + "]"); } super.run (); }}Créez ensuite une nouvelle classe de test, le code est le suivant:
package com.thread.test; / * * 0-50 exécute le thread principal, 50-100 exécute le thread A, et le thread principal continuera d'être exécuté après que le thread A a été entièrement exécuté * / public class threaddemo {public static void main (String [] args) {mythread t = new Mythread ("a"); t.start (); for (int i = 0; i <100; i ++) {if (i> 50) {try {t.join (); } catch (InterruptedException e) {e.printStackTrace (); }} System.out.println ("Thread principal" + "[" + i + "]"); }}}Ce qui suit est une explication de la méthode de jointure dans le thread dans l'API Java Platform SE8:
Public Final Void Join (Long Millis) lève des aiguilles d'interruption des airs à plus de millisecondes pour que ce fil meure. Un délai de 0 signifie attendre éternellement. Cette implémentation utilise une boucle de ceci. Les appels d'achat conditionnés à ce sujet. Comme un thread termine la méthode this.notifyall est invoquée. Il est recommandé que les applications n'utilisent pas d'attente, de notifier ou de notifier les instances de threads.Parameters: Millis - Le temps d'attendre en millions de secondes lance: illégalargumentException - Si la valeur de Millis est négative InterruptedException - si un thread a interrompu le thread actuel. L'état interrompu du thread actuel est effacé lorsque cette exception est lancée.
Ajouter d'abord le code
Créez un nouveau thread, le code est le suivant:
package com.thread.test; public class Mythread étend Thread {private String Name; public mythread (String name) {this.name = name; } @Override public void run () {for (int i = 0; i <100; i ++) {System.out.println (name + "[" + i + "]"); } super.run (); }}Créez ensuite une nouvelle classe de test, le code est le suivant:
package com.thread.test; / * * 0-50 exécute le thread principal, 50-100 exécute le thread A, et le thread principal continuera d'être exécuté après que le thread A a été entièrement exécuté * / public class threaddemo {public static void main (String [] args) {mythread t = new Mythread ("a"); t.start (); for (int i = 0; i <100; i ++) {if (i> 50) {try {t.join (); } catch (InterruptedException e) {e.printStackTrace (); }} System.out.println ("Thread principal" + "[" + i + "]"); }}}Ce qui suit est une explication de la méthode de jointure dans le thread dans l'API Java Platform SE8:
Public Final Void Join (Long Millis) lève des aiguilles d'interruption des airs à plus de millisecondes pour que ce fil meure. Un délai de 0 signifie attendre éternellement. Cette implémentation utilise une boucle de ceci. Les appels d'achat conditionnés à ce sujet. Au fur et à mesure qu'un thread termine la méthode this.notifyall est invoquée. Il est recommandé que les applications n'utilisent pas d'attente, de notifier ou de notifier les instances de threads.Parameters: Millis - Le temps d'attendre en millions de secondes lance: illégalargumentException - Si la valeur de Millis est négative InterruptedException - si un thread a interrompu le thread actuel. L'état interrompu du thread actuel est effacé lorsque cette exception est lancée.
Ma propre compréhension est qu'il entrera avec force le thread à l'aide de la méthode de jointure, et d'autres threads attendront que le thread soit entièrement exécuté avant de venir.