轉載:thread的六種狀態

 thread的六種狀態spa

http://blog.csdn.net/lifei128/article/details/20363257 .net

線程共有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()方法結束,線程就結束。
線程

相關文章
相關標籤/搜索