学了一点线程知识,下面说的比较浅。楼主再找知识看看吧
调用interrupt()方法后,线程中断状态将会被置位。但这只是一个标志位,一般线程会将中断看做是终止的请求,被中断的线程可以决定如何响应中断。如果线程被阻塞,就无法检测中断状态,将产生InterruptedException一场。
判断线程是否中断,有两个方法,一个是Tread的静态方法interrupted(),但调用这个方***使线程中断状态重置为false;另一个方法是isInterrupted()方法。

为了确保调用interrupt()方法后,线程能够退出,可以采用双重安全退出机制,以isInterrupted状态(而不是isInterrupted())作为线程循环或者执行的条件,在interrupt()方法中,对isInterrupted状态进行设置,并在退出后,将isInterrupted进行重置。