think in java笔记: Thread的interrupt()方法
interrupt()是什么?
Thread.interrupt()设置目标线程的中断状态,或者说标识。在目标线程中运行的code 可能 会拉出来这个标识,然后处理它。一些方法比如object.wait()是可以处理这个标识的,并且跑出来一个合适的异常,通常是InterruptedException.
哪些可以中断?
- Object.wait()/Thread.sleep()
- 大多数java.util.concurrent方法
- Java NIO,可以中断,抛出来的异常不是InterrupptedException,而是ClosedByInterruptException.
哪些中断不了?
就目前的书中介绍是:- IO Block.会锁住这个线程,然后只能手动释放。
- Synchronized修饰的方法。