Java 线程状态流转
生活随笔
收集整理的這篇文章主要介紹了
Java 线程状态流转
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Java 線程一共有 6 種狀態:
- NEW:新建狀態,當一個線程被創建完成,還沒有調用 start() 方法時,是這種狀態。
- RUNNABLE:可運行狀態,當一個線程正在正常地執行 run() 中的代碼時,是這種狀態。可運行狀態包含了
- READY:等待 CPU 執行的狀態。線程正在等待 CPU 調度運行,或者 CPU 時間片用光,或者調用了yield() 方法,會是這種狀態。
- RRUNNING:正在被 CPU 執行的狀態。
- BLOCKED:阻塞狀態,當一個線程嘗試獲取對象的監視器鎖失敗時(例如未能爭搶到對象的監視器鎖,從而被 synchronized 關鍵字修飾的方法/代碼塊阻塞的線程,這些線程將會放到這個對象的阻塞池(entryList)中),會是這種狀態。
- WAITING:等待狀態,當一個線程被一些沒有過期時間參數的等待方法(例如 wait()、LockSupport.park()、join() 等方法)所掛起時,會是這種狀態。這種狀態的線程不會嘗試去獲取監視器鎖。(當一個線程調用了對象的 wait() 方法后,將會被放入這個對象的等待池(waitSet)中)。
- TIMED_WAITING:超時等待狀態,當一個線程被一些 有過期時間參數的等待方法(例如 sleep(long mills)、wait(long mills)、LockSupport.parkNanos()、join(long mills) 等方法)所掛起時,會是這種狀態。這種狀態的線程不會嘗試去獲取監視器鎖。(當一個線程調用了對象的 wait() 方法后,將會被放入這個對象的等待池(waitSet)中)。
- TERMINATED:死亡狀態,當一個線程的 run() 方法執行完畢時,會是這種狀態。
總結
以上是生活随笔為你收集整理的Java 线程状态流转的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言pID程序怎么设计,51单片机PI
- 下一篇: 用C语言写一个球的程序,12个球的程序.