線程狀態,BLOCKED和WAITING有什么區別


線程可以通過notify,join,LockSupport.park方式進入wating狀態,進入wating狀態的線程等待喚醒(notify或notifyAll)才有機會獲取cpu的時間片段來繼續執行。

線程的 blocked狀態往往是無法進入同步方法/代碼塊來完成的。這是因為無法獲取到與同步方法/代碼塊相關聯的鎖。

與wating狀態相關聯的是等待隊列,與blocked狀態相關的是同步隊列,一個線程由等待隊列遷移到同步隊列時,線程狀態將會由wating轉化為blocked。可以這樣說,blocked狀態是處於wating狀態的線程重新煥發生命力的必由之路。


免責聲明!

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



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