JAVA中线程阻塞的方式
-
作用:sleep,join ,wait都让当前线程进入阻塞状态,interrupt使得调用者
在条件满足得情况下
从阻塞状态进入中断状态 -
用法:
// 线程类的静态方法
Thread.sleep(10);
// 对象的方法
new Object().wait();
// 线程类实例的方法
Thread.currentThread().join();
// 线程实例的方法
Thread.currentThread().interrupt();
- 在条件满足得情况下-----是否持有
锁
假如a线程调用了各阻塞方法,在其他线程中调用a.interrupt()后
因为sleep&&join不会释放锁,直接抛出中断异常;
因为wait会释放锁,因此其会在拿到锁后,抛出中断异常;