Thread Interrupt
2019-09-16 本文已影响0人
SnailFast
作用
interrupt方法是Thread类的实例方法,哪个实例调用,将哪个实例线程的中断状态标识置为true,仅此而已。
应用
interrupt方法只是一个通知,本身没啥用,需要配合其他方法一起使用,如实例方法isInterrupted、静态方法interrupted和一些可中断的阻塞方法。
实例方法isInterrupted,检查实例线程的中断状态标识。如果实例线程处于中断状态,则返回true;否则返回false。如下图所示:
![](https://img.haomeiwen.com/i6563032/9e7c5981e8ebff20.png)
静态方法interrupted,检查当前线程的中断状态标识,并把当前线程的中断状态标识置为false。注意,在哪个线程里面调用interrupted方法(和哪个实例调用无关),就检查哪个线程的中断状态,并把该线程的中断状态标识置为false。
![](https://img.haomeiwen.com/i6563032/0615f12b9b99ef68.png)
可中断的阻塞方法,如sleep、wait等,当调用完这些方法,线程会出于阻塞状态,如果该线程被其他线程将中断状态标识置为true,则该线程 会从阻塞状态醒来,抛出InterruptedException,并将该线程的中断状态标识置为false。