线程阻塞的三大原因


线程阻塞的原因,有三大类:

 1.获取锁,得不到,就进入到等待锁的阻塞队列。

      只有占有锁的线程,释放锁时,才会唤醒这个队列中的线程。

      notify不会唤醒该队列中的线程

   2.正在占用锁的线程,调用了wait,就进入wait阻塞队列。

      只有obj.notify()方法,才会唤醒这个队列中的线程。

      一般的释放锁,无法唤醒该队列中的线程。

  3.正在执行中的线程,调用了sleep()、join()或者IO,就进入了另一个阻塞队列。

      睡眠时间到,或者IO阻塞结束,线程才能得以继续进入可运行状态。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM