转载:thread的六种状态
2019獨角獸企業重金招聘Python工程師標準>>>
?thread的六種狀態
http://blog.csdn.net/lifei128/article/details/20363257
線程共有6種狀態;在某一時刻只能是這6種狀態之一。這些狀態由Thread.State這個枚舉類型表示,并且可以通過getState()方法獲得當前具體的狀態類型。
NEW
至今尚未啟動的線程的狀態。
當使用new一個新線程時,如new Thread(r),但還沒有執行start(),線程還沒有開始運行,這時線程的狀態就是NEW。
RUNNABLE
可運行線程的線程狀態。
當start()方法被調用時,線程就進入RUNNABLE狀態。此時的線程可能正在運行,也可能沒有運行
?
BLOCKED
受阻塞并且正在等待監視器鎖的某一線程的線程狀態。
下列情況會進入阻塞狀態:
1.等待某個操作的返回,例如IO操作,該操作返回之前,線程不會繼續下面的代碼。
2.等待某個“鎖”,在其他線程或程序釋放這個“鎖”之前,線程不會繼續執行。
3.等待一定的觸發條件。
4.線程執行了sleep方法。
5.線程被suspend()方法掛起。
一個被阻塞的線程在下列情況下會被重新激活:
1.執行了sleep()方法,睡眠時間已到。
2.等待的其他線程或程序持有的“鎖”已被釋放。
3.正在等待觸發條件的線程,條件得到滿足。
4.執行了suspend()方法,被調用了resume()方法。
5.等待的操作返回的線程,操作正確返回。
WAITING
某一等待線程的線程狀態。
線程因為調用了Object.wait()或Thread.join()而未運行,就會進入WAITING狀態。
?
TIMED_WAITING
具有指定等待時間的某一等待線程的線程狀態。
線程因為調用了Thread.sleep(),或者加上超時值來調用Object.wait()或Thread.join()而未運行,則會進入TIMED_WAITING狀態。
TERMINATED
已終止線程的線程狀態。
線程已運行完畢。它的run()方法已正常結束或通過拋出異常而結束。
線程的終止
run()方法結束,線程就結束。
轉載于:https://my.oschina.net/u/199776/blog/337534
總結
以上是生活随笔為你收集整理的转载:thread的六种状态的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言树形打印二叉树
- 下一篇: Lua 之string库