線程阻塞的三大原因


線程阻塞的原因,有三大類:

 1.獲取鎖,得不到,就進入到等待鎖的阻塞隊列。

      只有占有鎖的線程,釋放鎖時,才會喚醒這個隊列中的線程。

      notify不會喚醒該隊列中的線程

   2.正在占用鎖的線程,調用了wait,就進入wait阻塞隊列。

      只有obj.notify()方法,才會喚醒這個隊列中的線程。

      一般的釋放鎖,無法喚醒該隊列中的線程。

  3.正在執行中的線程,調用了sleep()、join()或者IO,就進入了另一個阻塞隊列。

      睡眠時間到,或者IO阻塞結束,線程才能得以繼續進入可運行狀態。

 


免責聲明!

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



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