Wenn wir die Methode start() für einen Thread aufrufen, wird die Ausführung des Threads gestartet und die Methode run() des Threads wird von der Java Virtual Machine (JVM) aufgerufen. Wenn wir die run()-Methode direkt aufrufen, wird sie als normale überschriebene Methode der Thread-Klasse (oder ausführbaren Schnittstelle) behandelt und im Kontext des aktuellen Threads ausgeführt, nicht in ein neuer Thread in Ausführung.
public class CallRunMethodTest extends Thread { @Override public void run() { System.out.println("In the run() method: " + Thread.currentThread().getName()); for(int i = 0; i < 5 ; i++) { System.out.println("i: " + i); try { Thread.sleep(300); } catch (InterruptedException ie) { ie.printStackTrace(); } } } public static void main(String[] args) { CallRunMethodTest t1 = new CallRunMethodTest(); CallRunMethodTest t2 = new CallRunMethodTest(); t1.run(); <strong>// calling run() method directly instead of start() method</strong> t2.run(); <strong>// calling run() method directly instead of start() method</strong> } }
Im obigen Beispiel werden zwei Threads erstellt und die run()-Methode wird direkt auf den Threads aufgerufen, anstatt die start()-Methode aufzurufen.
In the run() method: main i: 0 i: 1 i: 2 i: 3 i: 4 In the run() method: main i: 0 i: 1 i: 2 i: 3 i: 4
Das obige ist der detaillierte Inhalt vonWann soll in Java Thread.run() anstelle von Thread.start() aufgerufen werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!