Heim >Java >javaLernprogramm >Runnable run() vs. Thread start(): Was ist der Hauptunterschied?
Ausführbarer run() vs. Thread start()
Frage:
Gleichzeitig Bei der Java-Programmierung definiert die Runnable-Schnittstelle eine run()-Methode, die den Einstiegspunkt für eine Aufgabe darstellt. Ebenso verfügt die Thread-Klasse über eine start()-Methode, die einen neuen Ausführungsthread initiiert. Was ist der Hauptunterschied zwischen diesen beiden Methoden?
Antwort:
Der grundlegende Unterschied liegt in der Thread-Erstellung und -Ausführung:
Ausführbarer Lauf (): Keine Thread-Erstellung
Thread start(): Thread-Erstellung
Beispiel:
Betrachten Sie zwei Klassen, R1 und R2, die die Runnable-Schnittstelle implementieren:
class R1 implements Runnable { public void run() { ... } } class R2 implements Runnable { public void run() { ... } }
Im Folgenden Code-Snippet, r1.run() und r2.run() werden direkt aufgerufen, was bedeutet, dass keine neuen Threads aufgerufen werden erstellt:
public static void main() { R1 r1 = new R1(); R2 r2 = new R2(); r1.run(); r2.run(); }
Im Gegensatz dazu erstellt der folgende Code zwei neue Threads, t1 und t2, und startet sie:
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(); }
In diesem Code sind die Aufgaben mit r1 und r2 verknüpft wird gleichzeitig in den neu erstellten Threads ausgeführt.
Das obige ist der detaillierte Inhalt vonRunnable run() vs. Thread start(): Was ist der Hauptunterschied?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!