isInterrupted()方法和Thread.interrupted()方法判断中断状态的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了isInterrupted()方法和Thread.interrupted()方法判断中断状态的区别相关的知识,希望对你有一定的参考价值。
①isInterrupted()方法:
在Thread对象上调用isInterrupted()方法可以检查任何线程的中断状态,但是:线程一旦被中断,isInterrupted()方法便会返回true,而一旦sleep()方法抛出异常,它将恢复中断标志,isInterrupted()方法在此时就会返回false。
如下代码所示:
②Thread.interrupted()方法:
Thread.interrupted()方法是静态方法,不能再特定的线程中使用,只能报告调用它的线程的中断状态;
如果当前线程被中断,它会返回true,但是它会自动的重置中断状态为false;所以,第二次调用的时候,总是会返回false,除非中断了线程。
如下代码所示:
以上是关于isInterrupted()方法和Thread.interrupted()方法判断中断状态的区别的主要内容,如果未能解决你的问题,请参考以下文章
为啥在实现 Runnable 时使用 Thread.currentThread().isInterrupted() 而不是 Thread.interrupted()?
interrupted()和isInterrupted()比较
java interrupted与isInterrupted方法
自定义 Runnable 实现,检查每行代码之间的 Thread.currentThread().isInterrupted()