hier beendet haben ist mein Codenicht in der Lage, vorherzusagen, wenn alle Fäden
package pe.entel.ftp;
public class Myclass implements Runnable {
public void run() {
System.out.println(Thread.currentThread().getName());
}
public static void main(String[] args) {
Myclass runnable = new Myclass();
ThreadGroup tg1 = new ThreadGroup("Parent ThreadGroup");
for (int i = 0; i < 100; i++) {
Thread t1 = new Thread(tg1, runnable, i + "");
t1.start();
System.out.println("Thread Group Name: " + tg1.getName());
}
while (tg1.isDestroyed()) {
System.out.println("yes success");
}
System.out.println("completed");
}
}
während mein Teil p o/
Thread Group Name: Parent ThreadGroup
Thread Group Name: Parent ThreadGroup
Thread Group Name: Parent ThreadGroup
Thread Group Name: Parent ThreadGroup
Thread Group Name: Parent ThreadGroup
completed
84
86
88
90
92
94
96
98
95
97
99
Hier bin ich vorhersagen, nicht in der Lage, wann genau Gruppe Thread Die Ausführung der while-Schleife zur Überprüfung, ob die Thread-Gruppe zerstört wurde, funktioniert ebenfalls nicht. Auch nach dem Drucken werden einige Threads ausgeführt.
Ich möchte alle Threads auf einmal ausführen.Für den Code, den Sie angegeben haben. Threads werden nacheinander wegen Join ausgeführt. – smith
Nein. Die Threads werden in der for-Schleife mit dem Befehl 't1.start()' gestartet und parallel ausgeführt. Was sequentiell gemacht wird, ist der Join, also das Warten auf das Ende des Threads. Sie warten, bis der erste Thread mit 'join()' abgeschlossen ist. In diesem Fall warten Sie auf den Abschluss des zweiten Threads. Wenn das schneller als der erste Thread ist, kehrt 'join()' sofort zurück, und Sie springen auf den dritten und so weiter. –
k danke ........... – smith