interrupt、interrupted 、isInterrupted 区别
1、interrupt interrupt方法用于中断线程。调用该方法的线程的状态为将被置为"中断"状态。 注意:线程中断仅仅是置线程的中断状态位,不会停止线程。需要用户自己去监视线程的状态为并做处理。支持线程中断的方法(也就是线程中断后会抛出interruptedException的方法)就是在监视线程的中断状态,一旦线程的中断状态被置为“中断状态”,就会抛出中断异常。 2、interrupted 和 isInterrupted 首先看一下该方法的实现: public static boolean interrupted () { return currentThread().isInterrupted(true); } 该方法就是直接调用 当前线程 的isInterrupted(true)方法。 然后再来看一下 isInterrupted的实现: public boolean isInterrupted () { return isInterrupted( false); } 这两个方法有两个主要区别: interrupted 是作用于当前线程,isInterrupted 是作用于调用该方法的线程对象锁对应的线程。(线程对象对应的线程不一定是当前运行的线程。例如我们可以再A线程去调用B线程的isInterrupted方法。) 这两个方法最终都会调用同一个方法