Run() vs. start() im Threading: Eine umfassende Erklärung
In der Multithread-Programmierung effektives Verständnis der Unterschiede zwischen Thread.run () und Runnable.run() ist entscheidend.
Frage:
Beachten Sie die folgenden Codeausschnitte:
public static void main() { R1 r1 = new R1(); R2 r2 = new R2(); r1.run(); r2.run(); }
public static void main() { R1 r1 = new R1(); R2 r2 = new R2(); Thread t1 = new Thread(r1); Thread t2 = new Thread(r2); t1.start(); t2.start(); }
Antwort:
Erstes Beispiel: Nein Multithreading
Im ersten Snippet werden r1.run() und r2.run() direkt ausgeführt, ohne neue Threads zu erstellen. Folglich werden sowohl R1 als auch R2 nacheinander im Hauptthread ausgeführt.
Zweites Beispiel: Multithreading
Im zweiten Snippet werden Thread-Objekte (t1 und t2) erstellt um die R1- bzw. R2-Instanzen zu kapseln. Wenn t1.start() und t2.start() aufgerufen werden, werden neue Threads initiiert, wobei jeder die run()-Methode der entsprechenden Runnable-Implementierung gleichzeitig und parallel zum Hauptthread ausführt.
Schlüssel Unterschiede:
Das obige ist der detaillierte Inhalt vonRun() vs. start() in Java-Threads: Was ist der Unterschied im Multithreading-Verhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!