理解中断
中断可以理解为线程的一个标识位属性,它表示一个运行中的线程是否被其他线程进行了中断操作(通过调用该线程的interrupt()进行操作)。
运行中的线程自身通过检查是否被中断进行响应,
1.线程通过isInterrupted()来进行判断是否被中断
2.线程调用静态方法Thread.interrupted()对当前线程的中断标识位进行复位。
如果该线程处于终结状态,即使该线程被中断过,在调用该线程对象的isInterrupted()时依旧为返回false.
许多声明抛出InterruptedException的方法(例如 Thread.sleep(long millis)方法)这些方法抛出InterruptedException之前,java虚拟机会先将该线程的中断标示位清除,然后抛出interruptedException,此时调用isInterrupted()方法将会返回false.