Heim  >  Artikel  >  Java  >  Was sind die Java-Thread-Zustände?

Was sind die Java-Thread-Zustände?

coldplay.xixi
coldplay.xixiOriginal
2020-12-15 15:10:0415474Durchsuche

Java-Thread-Status: 1. Neuer Status „Ausführbar“; 3. Läuft-Status „Läuft“ 5. Todesstatus „Tot“.

Was sind die Java-Thread-Zustände?

Die Betriebsumgebung dieses Artikels: Windows 7-System, Dell G3-Computer, Java Version 8.0.

Java-Thread-Status:

1. Neuer Status (Neu): Nachdem das Thread-Objekt erstellt wurde, wechselt es in den neuen Status.

Zum Beispiel: Thread thread = new Thread(). Thread thread = new Thread()

2. 就绪状态(Runnable): 也被称为“可执行状态”。线程对象被创建后,其它线程调用了该对象的start()方法,从而来启动该线程。例如,thread.start()。处于就绪状态的线程,随时可能被CPU调度执行。

3. 运行状态(Running): 线程获取CPU权限进行执行。需要注意的是,线程只能从就绪状态进入到运行状态。

4. 阻塞状态(Blocked): 阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行状态。阻塞的情况分三种:

  • (01) 等待阻塞 -- 通过调用线程的wait()方法,让线程等待某工作的完成。

  • (02) 同步阻塞 -- 线程在获取synchronized同步锁失败(因为锁被其它线程所占用),它会进入同步阻塞状态。

  • (03) 其他阻塞 -- 通过调用线程的sleep()或join()或发出了I/O请求时,线程会进入到阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入就绪状态。

5. 死亡状态(Dead): 线程执行完了或者因异常退出了run()

2. Bereitzustand (ausführbar):

Auch als „ausführbarer Zustand“ bekannt. Nachdem das Thread-Objekt erstellt wurde, rufen andere Threads die start()-Methode des Objekts auf, um den Thread zu starten. Zum Beispiel thread.start(). Threads im Bereitschaftszustand können jederzeit zur Ausführung durch die CPU eingeplant werden.

3. Ausführungsstatus (Running):
Der Thread erhält CPU-Berechtigungen zur Ausführung. Es ist zu beachten, dass ein Thread nur aus dem Bereitschaftszustand in den laufenden Zustand wechseln kann. 🎜🎜🎜4. Blockiert: 🎜Der blockierte Zustand bedeutet, dass der Thread aus irgendeinem Grund das Recht zur Nutzung der CPU aufgibt und vorübergehend nicht mehr ausgeführt wird. Bis der Thread in den Bereitschaftszustand wechselt, besteht die Möglichkeit, in den Ausführungszustand zu wechseln. Es gibt drei Arten von Blockierungssituationen: 🎜
  • 🎜(01) Warten auf Blockierung – indem Sie die Methode wait() des Threads aufrufen, lassen Sie den Thread warten die Vollendung einer bestimmten Arbeit. 🎜
  • 🎜(02) Synchronblockierung – Wenn der Thread die synchronisierte Synchronisationssperre nicht erhalten kann (weil die Sperre von anderen Threads belegt ist), wechselt er in den Synchronisationsblockierungsstatus. 🎜
  • 🎜(03) Andere Blockierung – Der Thread wechselt in den Blockierungszustand, indem er Sleep() oder Join() des Threads aufruft oder eine E/A-Anfrage ausgibt. Wenn der Zustand „sleep()“ abläuft, wartet „join()“ auf die Beendigung oder Zeitüberschreitung des Threads oder auf den Abschluss der E/A-Verarbeitung, und der Thread kehrt in den Bereitschaftszustand zurück. 🎜
🎜🎜5. Todeszustand (Dead): 🎜Der Thread hat die Ausführung der run()-Methode aufgrund einer Ausnahme beendet und der Thread beendet seine Lebensdauer Zyklus. 🎜🎜🎜Verwandte kostenlose Lernempfehlungen: 🎜Java-Grundlagen-Tutorial🎜🎜🎜

Das obige ist der detaillierte Inhalt vonWas sind die Java-Thread-Zustände?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn