首页 > 代码库 > isInterrupted()方法和Thread.interrupted()方法判断中断状态的区别

isInterrupted()方法和Thread.interrupted()方法判断中断状态的区别

①isInterrupted()方法:

  在Thread对象上调用isInterrupted()方法可以检查任何线程的中断状态,但是:线程一旦被中断,isInterrupted()方法便会返回true,而一旦sleep()方法抛出异常,它将恢复中断标志,isInterrupted()方法在此时就会返回false。

如下代码所示:技术分享

②Thread.interrupted()方法: 

  Thread.interrupted()方法是静态方法,不能再特定的线程中使用,只能报告调用它的线程的中断状态;

如果当前线程被中断,它会返回true,但是它会自动的重置中断状态为false;所以,第二次调用的时候,总是会返回false,除非中断了线程。

如下代码所示:

技术分享

 

isInterrupted()方法和Thread.interrupted()方法判断中断状态的区别