Im obigen Beispiel wird die Join-Methode der Thread-Klasse häufig verwendet. Ich denke, Sie haben vielleicht schon erraten, welche Funktion die Join-Methode hat. Ja, die Funktion der Join-Methode besteht darin, den asynchronen Ausführungsthread in eine synchrone Ausführung umzuwandeln. Das heißt, wenn die Startmethode der Thread-Instanz aufgerufen wird, kehrt diese Methode sofort zurück. Wenn Sie nach dem Aufruf der Startmethode einen von diesem Thread berechneten Wert verwenden müssen, müssen Sie die Join-Methode verwenden. Wenn Sie die Join-Methode nicht verwenden, gibt es keine Garantie dafür, dass der Thread ausgeführt wird, wenn eine Anweisung nach der Startmethode ausgeführt wird. Nach Verwendung der Join-Methode setzt das Programm die Ausführung erst fort, wenn dieser Thread beendet wird.
Der folgende Code demonstriert die Verwendung von Join.
package mythread; public class JoinThread extends Thread { public static volatile int n = 0; public void run() { for (int i = 0; i < 10; i++, n++) try { sleep(3); // 为了使运行结果更随机,延迟3毫秒 } catch (Exception e) { } } public static void main(String[] args) throws Exception { Thread threads[] = new Thread[100]; for (int i = 0; i < threads.length; i++) // 建立100个线程 threads[i] = new JoinThread(); for (int i = 0; i < threads.length; i++) // 运行刚才建立的100个线程 threads[i].start(); if (args.length > 0) for (int i = 0; i < threads.length; i++) // 100个线程都执行完后继续 threads[i].join(); System.out.println("n=" + JoinThread.n); } }
In Routine 2-8 werden 100 Threads erstellt, und jeder Thread erhöht die statische Variable n um 10. Wenn n ausgegeben wird, nachdem alle 100 Threads ausgeführt wurden, sollte der n-Wert 1000 sein.
1. Test 1
Verwenden Sie den folgenden Befehl, um das obige Programm auszuführen:
1 java mythread.JoinThread
Die Ausführungsergebnisse des Programms sind wie folgt folgt:
1 n=442
Dieses Laufergebnis kann in verschiedenen Laufumgebungen einige Unterschiede aufweisen, aber im Allgemeinen ist n nicht gleich 1000. Aus den obigen Ergebnissen geht hervor, dass nicht alle 100 Threads ausgeführt wurden . Dann wird n ausgegeben.
2. Test 2
Verwenden Sie den folgenden Befehl, um den obigen Code auszuführen:
Der obige Befehl enthält einen Parameter-Join line Tatsächlich kann jeder Parameter in der Befehlszeile verwendet werden, solange es einen Parameter gibt. Join wird hier nur verwendet, um anzugeben, dass die Join-Methode zum Synchronisieren der Ausführung dieser 100 Threads verwendet wird.
Die Ausführungsergebnisse des Programms lauten wie folgt:
1 n=1000
Unabhängig davon, in welcher Betriebsumgebung Sie den obigen Befehl ausführen, erhalten Sie das gleiche Ergebnis: n=1000. Dies wird vollständig veranschaulicht Die 100 Alle Threads müssen ausgeführt worden sein, daher muss n gleich 1000 sein.
Das Obige ist eine Einführung in die Verwendung der Join-Methode von Java-Threads. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).