我知道线程中断状态应该在线程生命周期负责的代码提交和处理后清除。在我看来,唯一应该请求中断的代码是线程被编码为与之协作的代码(通常是创建线程的代码),因为“中断”状态似乎是可以解释的。
我能想到的唯一场景是一些应用程序容器被请求中止一些工作。为此,它会中断托管线程并进行一些清理,然后线程继续运行。然而,这过于复杂,因为在实践中允许线程终止和启动新线程要容易得多。
什么时候线程“处理”中断状态而不终止是有意义的呢?
发布于 2016-09-28 09:43:03
原则上,中断意味着你想让它意味着什么。问题是,假设中断发生在您的代码调用库例程时;库作者认为它应该是什么意思?希望lib作者认为这意味着“中止当前操作,但将所有内容保持一致状态,以防客户端想要启动另一个操作。”但是如果它发生在这个库正在调用其他一些yahoo编写的库的时候……
唯一真正安全的做法是关闭整个程序。
https://stackoverflow.com/questions/39727307
复制相似问题