我正在阅读goetz等人的cip。在关于线程取消的一章中,作者写道:
正如任务代码不应该假设中断对其执行线程意味着什么一样,取消代码也不应该假设任意线程的中断策略。线程只能由其所有者中断;所有者可以将线程的中断策略的知识封装在适当的取消机制中,例如shutdown方法。
我知道,在外部管理的某个线程上调度的任务应该将中断状态设置回原位,或者抛出 InterruptedException
启动调用堆栈以确保所属线程知道中断,并且可以执行它所拥有的任何中断策略(例如,它可能想要退出)。
但由于某种原因,我很难理解书中的这句话。为什么在某个线程上运行的任务不能请求其他线程中断?中断其所属线程(通过调用 Thread.currentThread.interrupt()
)?
暂无答案!
目前还没有任何答案,快来回答吧!