阻塞的情况分三种:
1等待阻塞(o.wait->等待对列):
运行的线程执行 o.wait()方法,JVM 会把该线程放入等待队列(waitting queue) 中。
2 同步阻塞(lock->锁池)
运行的线程在获取对象的同步锁时,若该同步锁被别的线程占用,则 JVM 会把该线程放入锁池中。
3其他阻塞(sleep/join)
运行的线程执行 Thread.sleep(long ms)或 t.join()方法,或者发出了 I/O 请求时,JVM 会把该线程置为阻塞状态。当 sleep()状态超时、join()等待线程终止或者超时、或者 I/O 处理完毕时,线程重新转入可运行状态.
线程什么时候会进入阻塞状态?
最新推荐文章于 2023-08-13 20:38:16 发布