线程状态装换图中进入阻塞的条件怎么理解?
来源:8-10 前述方法及线程状态总结
nightji
2019-02-15
老师,你好。8.10节中1分32秒的线程状态的图中的进入阻塞状态的条件是不是有问题,之前在8.5节的时候说进入阻塞状态是因为进入同步代码块,这张图里的条件是等待用户输入或者Thread.sleep。这怎么理解?
写回答
1回答
-
同学好,线程在等待锁释放或者在没执行完放弃CPU时间片等待下次执行的时候,都会进入阻塞状态。
阻塞的情况分三种:
(01) 等待阻塞 -- 通过调用线程的wait()方法,让线程等待某工作的完成。
(02) 同步阻塞 -- 线程在获取synchronized同步锁失败(因为锁被其它线程所占用),它会进入同步阻塞状态。
(03) 其他阻塞 -- 通过调用线程的sleep()或join()或发出了I/O请求时,线程会进入到阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入就绪状态。012019-02-16
相似问题