线程阻塞的三大原因

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

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

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

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

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

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

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

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

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

当你发现自己的才华撑不起野心时,就请安静下来学习吧
原文地址:https://www.cnblogs.com/smallVampire/p/12511842.html