什么时候线程会发生阻塞?
阻塞结束后会进入就绪状态
- 睡眠阻塞:调用Thread.sleep方法,此时线程不会释放锁对象,睡眠结束后,进入就绪状态。
- 等待阻塞:调用wait,线程让出资源和CPU执行权,线程不能自己醒来,需要其他线程执行notify或notifyall方法,唤醒。=》就绪状态
- 礼让阻塞:调用yield,将CPU执行权让出来,等待列中的所有线程一同竞争。此时线程进入就绪状态
- 自闭阻塞:调用join方法,当前线程阻塞,去运行join的那个线程,join的线程运行结束后在运行当前线程。
- IO阻塞:线程发起IO请求时,会进入阻塞状态
- 同步阻塞:(Lock->锁池)运行线程在获取同步锁时,该锁被其他线程占用,则JVM会吧该线程送入锁池。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员小航
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果