【发布时间】:2014-05-23 20:25:43
【问题描述】:
Thread 的 JavaDoc 说 Thread.interrupt() 中断线程如下:
- 在 Object 的
wait()方法之一或 Thread 的方法之一中阻塞的线程join()或sleep()方法将被唤醒,它们的中断状态 将被清除,他们会收到InterruptedException。- 在
InterruptibleChannel的 I/O 操作中阻塞的线程将设置其中断状态并接收ClosedByInterruptException。此外,该频道将被关闭。Selector中阻塞的线程将设置其中断状态并立即返回。在这种情况下,他们不会收到异常。
如果主题不符合上述任何条件怎么办?它是被杀死还是继续运行还是什么?
提前谢谢...
【问题讨论】:
-
阅读 javadoc 的其余部分。
If none of the previous conditions hold then this thread's interrupt status will be set. -
它会继续,创建代码的人应该检查它是否被使用 Thread.isInterrupted() 中断
-
@MarcoAcierno:请将此作为答案发布,以便我批准。
-
@SotiriosDelimanolis 我引用了 Android 文档,但没有提及。我不会再犯这个错误了。
-
好吧,也许我有点苛刻,因为你说得很好。 Android javadoc 不一定说与 Java javadoc 相同的东西,因为有些东西不受支持。我很确定在这种情况下它会做同样的事情。
标签: java android multithreading concurrency