【问题标题】:Does it harm if I send many interrupt to non-sleeping Thread如果我向非睡眠线程发送许多中断是否有害
【发布时间】:2014-02-11 18:18:03
【问题描述】:

我有一个线程在等待某个任务执行时让它休眠一段时间(使用 Thread.sleep(60000) )。一旦有请求到达,我通过调用 (t.inerrupt) 从另一个线程唤醒它。

我可以看到它到目前为止运行良好。如果我在 Thread 处于睡眠状态时发送 t.inerrupt,它就会醒来。 但是,如果进程没有休眠(做实际工作),调用 t.inerrupt 会对线程有什么影响吗?

【问题讨论】:

  • 它变得非常不爽。

标签: java multithreading


【解决方案1】:

阅读javadoc

如果前面的条件都不成立 [即。线程没有被阻塞或休眠] 那么这个线程的中断状态将被设置。

所以只设置了一个标志。

【讨论】:

  • @user836026 您可以通过Thread#isInterrupted() 获取其值。所以如果你需要改变行为,你可以检查标志并采取适当的行动。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-22
  • 2012-08-08
  • 2019-05-24
  • 2013-02-14
  • 2011-05-14
  • 2011-11-10
相关资源
最近更新 更多