Thread对象.interrupt()方法会设置线程的中断状态为true,并且可以用来中断一个正处于阻塞状态(调用了sleep,wait,join方法)的线程,使得处于阻塞状态的线程抛出一个InterruptedException异常,但jvm会重新将线程的中断标志重新设置为false。
Thread.interrupted()方法是返回当前线程的中断状态,并且当前线程的中断状态被方法内部清除(如果原来是true则恢复为false,再次调用时返回的就是false了)。这也说明只有当前线程才能清除自己的中断位。
Thread对象.isInterrupted()方法可以查询任意线程对象的中断状态,并且不会清空该线程的中断状态。
interrupted()和isInterrupted()这两个方法调用的是Thread类的本地方法,只不过ClearInterrupted(是否要清除状态位)参数值不同:
private
native
boolean
isInterrupted(
boolean
ClearInterrupted);
参考自:http://www.cnblogs.com/w-wfy/p/6414801.html