1)interrupt 方法
Thread#interrupt() 方法,用于中断线程。调用该方法的线程的状态为将被置为”中断”状态。 该方法为实例方法。
注意:线程中断仅仅是置线程的中断状态位,不会停止线程。需要用户自己去监视线程的状态为并做处理。支持线程中断的方法(也就是线程中断后会抛出 InterruptedException 的方法)就是在监视线程的中断状态,一旦线程的中断状态被置为“中断状态”,就会抛出中断异常。
2)interrupted方法
Thread#interrupted() 静态方法,查询当前线程的中断状态,并且清除原状态。如果一个线程被中断了,第一次调用 #interrupted() 方法则返回 true ,第二次和后面的就返回 false 了。 该方法为静态方法。
3)isInterrupted 方法 查询指定线程的中断状态,不会清除原状态, 该方法为实例方法
总结
线程的中断更多的是气到标记作用,监听到线程的中断状态再进行逻辑处理,可以参考AQS的源码进行理解