CPublic class test1 Extends Thread {
@v@v {while (true) {System.out.println (thread.currentthRead (). GetName ()) ; } } public static void main(String[] args) { Test1 test1=new Test1(); test1.run(); //Ergebnis ausgeben main test1.start(); //Ergebnis ausgeben Thread -0 }}
1.start
start ist das Starten eines neuen Threads.
Wenn ein Thread mit start() gestartet wird, wechselt der Thread in den Bereitschaftszustand, wodurch der durch den Thread dargestellte virtuelle Prozessor in einen ausführbaren Zustand versetzt wird, was bedeutet, dass er von der JVM geplant und ausgeführt werden kann. Dies bedeutet jedoch nicht, dass der Thread sofort ausgeführt wird. Erst wenn die CPU eine Zeitscheibe zuweist und dieser Thread die Zeitscheibe erhält, beginnt er mit der Ausführung der run()-Methode. start() kann nicht wiederholt aufgerufen werden, es ruft die run()-Methode auf, die Sie überschreiben müssen2 run() ist wie eine gewöhnliche Member-Methode und kann wiederholt aufgerufen werden .
Wenn Sie die run-Methode direkt aufrufen, wird kein neuer Thread gestartet! Es gibt immer noch nur einen Thread im Programm, den Hauptthread, und es gibt immer noch nur einen Programmausführungspfad. Er muss immer noch sequentiell ausgeführt werden und muss immer noch auf die Ausführung des Ausführungsmethodenkörpers warten, bevor er mit der Ausführung fortfahren kann Der folgende Code wird auf diese Weise nicht erreicht. Rufen Sie die Startmethode auf, um den Thread zu starten, und die Ausführungsmethode ist nur ein normaler Methodenaufruf des Threads, der weiterhin im Hauptthread ausgeführt wird.
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Start und Ausführung im Java-Thread?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!