Den Unterschied zwischen Thread.start() und Runnable.run() verstehen
In der Java-Parallelität ist Runnable eine Schnittstelle, die a definiert einzelne Methode, run(), die den Code enthält, der gleichzeitig in einem separaten Thread ausgeführt werden soll. Die Thread-Klasse kapselt die Details der Thread-Erstellung und -Verwaltung.
Szenario 1: Direkte Ausführung von Runnable
Im ersten Beispiel:
R1 r1 = new R1(); R2 r2 = new R2(); r1.run(); r2.run();
Wir erstellen Instanzen von R1 und R2 und rufen deren run()-Methoden direkt auf. Dadurch wird der Code im aktuellen Thread ausgeführt, ohne neue Threads zu erstellen. Mit anderen Worten, sowohl R1 als auch R2 werden nacheinander im Hauptthread ausgeführt.
Szenario 2: Thread-basierte Ausführung von Runnable
Im zweiten Beispiel:
R1 r1 = new R1(); R2 r2 = new R2(); Thread t1 = new Thread(r1); Thread t2 = new Thread(r2); t1.start(); t2.start();
Wir erstellen erneut Instanzen von R1 und R2, aber dieses Mal übergeben wir sie an den Konstruktor von Thread und erstellen so zwei separate Threads Objekte. Wenn wir t1.start() und t2.start() aufrufen, werden zwei neue Threads erzeugt, die jeweils die run()-Methode von R1 bzw. R2 ausführen.
Hauptunterschiede
Der entscheidende Unterschied zwischen den beiden Beispielen liegt in der Thread-Erstellung. Im ersten Szenario werden keine neuen Threads erstellt und R1 und R2 werden einfach innerhalb des vorhandenen Hauptthreads ausgeführt. Im zweiten Szenario werden zwei separate Threads erstellt, die die gleichzeitige Ausführung von R1 und R2 ermöglichen.
Zusammenfassend definiert Runnable.run() den Code, der gleichzeitig ausgeführt werden soll, während Thread.start() einen initiiert Neuer Thread, um diesen Code auszuführen. Die Wahl des Ansatzes hängt davon ab, ob Sie Code in einem neuen Thread oder im Hauptthread ausführen möchten.
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen „Thread.start()' und „Runnable.run()' in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!