java 線程的幾種狀態


  今天一個朋友問線程的幾種狀態,說了一部分,回家發現說的不全趕緊在網上找了下,順便下個帖子記錄下來。

新建(new)

  新建一個線程的對象。

可運行(runable)

  線程對象創建后,其他線程調用該線程的start方法。或者該線程位於可運行線程池中等待被線程調用,已獲取cpu的使用權。

運行(running)

  可運行的線程獲取了cpu的使用權,執行程序代碼/

阻塞(block)

  由於某些原因該線程放棄了cpu的使用權。停止執行。除非線程進入可運行的狀態,才會有機會獲取cpu的使用權。

  1. 等待阻塞:運行中的線程執行wait方法,這時候該線程會被放入等待隊列。

  2. 同步阻塞:運行中的線程獲取同步鎖,如果該同步鎖被別的線程占用,這個線程會成被放入鎖池,等待其他線程釋放同步鎖。

  3. 其他阻塞:運行的線程執行sleep或者join方法這個線程會成為阻塞狀態。當sleep超時,join等待線程終止,該線程會進入可運行狀態。

死亡(dead)

  線程run mian 執行完畢后,或者因為某些異常產生退出了 run 方法,該線程的生命周期結束。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM