2009-08-12 13 views

Antwort

10

Es wird in aktuellen Thread ausgeführt werden. Sie werden nicht starten neuen Thread auf diese Weise.

Aber das ist nicht wirklich wichtig in Ihrem Beispiel, da Sie neuen Thread keinen Code gegeben haben, um trotzdem zu laufen.

+0

Was ist der aktuelle Thread hier? – Johanna

+1

Der Haupt-Thread, der die main() -Methode ausführt. –

3

Der Thread, der den Code main() ausführt, ist der aktuelle Thread. Das Erstellen eines Thread Objekts und das Aufrufen einer seiner Methoden (anders als start()) entspricht dem Aufruf einer Methode der Klasse Integer oder String - es wird kein neuer tatsächlicher Thread erstellt.

In Ihrem Codebeispiel wird die Ausführung der Hauptmethode nur fortgesetzt, wenn die run()-Methode ausgeführt wurde. Wenn die run()-Methode über eine Endlosschleife verfügt (also auf eingehende Anforderungen wartet), wird die Methode main() nie ausgeführt, selbst wenn nach dem Aufruf von run() mehr Codezeilen vorhanden sind.

aThread.start() Aufruf erzeugt einen neuen aktuellen Thread (durch das Objekt dargestellt aThread), macht den neuen Thread aufrufen run() Methode, und gibt die Ausführung des ursprünglichen Thread in die nächste Zeile in dem main(). Dies bedeutet, dass der neue Thread für immer in Kreisen zirkulieren kann, aber es verhindert nicht, dass der Code main() mehr Threads erstellt oder andere Aufgaben ausführt.

3

Es wird nur ausgeführt, als ob Sie eine normale Methode aufrufen. Die Methode wird also in demselben Thread ausgeführt, der die Methode aufruft.

0

Wenn Sie die Start-Methode für eine Thread-Klasse aufrufen, wird die Start-Methode nach einer Weile zurückgeben, aber im Parallelbetrieb wird der Inhalt der Run-Methode ausgeführt. Wenn Sie die run-Methode direkt aufrufen, wird sie ausgeführt und kehrt zum Aufrufer zurück, nachdem die Methode vollständig ausgeführt wurde - wie bei jedem normalen Methodenaufruf.

1

Es wird im aktuellen Thread nicht in neuen Thread laufen Also wenn Sie run Methode selbst aufrufen, ist es bedeutungslos. Weil es keinen neuen Thread erstellt.

Verwandte Themen