Java:使用Thread.interrupted()和Thread.isInterrupted()之间的区别?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (58)

Java问题:据我所知,有两种方法可以检查线程内部线程是否接收到中断信号Thread.interrupted()和Thread.isInterrupted(),并且它们之间的唯一区别是前者重置内部中断标志。

到目前为止,一直使用Thread.isInterrupted(),从来没有任何问题。再次,我见过的大多数教程都推荐使用Thread.interrupted()。这有什么特别的原因吗?

提问于
用户回答回答于

一个常见的错误是调用实例上的静态方法。

Thread myThread = ...;
if (myThread.interrupted()) {} // WRONG! This might not be checking myThread.
if (myThread.isInterrupted()) {} // Right!
用户回答回答于

如果用interrupted

isInterrupted告诉您调用它的线程当前是否被中断。

扫码关注云+社区