Java 线程的 5 种状态
生活随笔
收集整理的這篇文章主要介紹了
Java 线程的 5 种状态
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
線程狀態圖:
線程共包括以下 5 種狀態:
1. 新建狀態(New):?線程對象被創建后,就進入了新建狀態。例如,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()方法,該線程結束生命周期。
總結
以上是生活随笔為你收集整理的Java 线程的 5 种状态的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 科普: 中间件底层实现的分布式协议之Ra
- 下一篇: swagger 怎么去掉get dele