这是 Java 的线程中断设计哲学的一部分:
首先我们强调,Java的线程中断只是一种信号(通知),而不是强制杀死线程。
信号原则上只处理一次就可以了,处理过就恢复中断信号,避免重复处理。
抛出**InterruptedException**可以理解为是处理中断的一种操作。
举例:
你在餐厅次饭,你需要叫服务员,这时候你按了桌子上的呼叫按钮,按钮变亮。
服务员看到呼叫提醒,执行步骤分为两步:
1.先灭灯,表示已经收到了你的请求,避免其他服务员重复服务。
2.然后再走过来,帮你处理需求。
总结:
| 步骤 | 目的 |
|---|---|
| 清除中断状态 | 表示已经处理了该次中断,防止重复处理同一中断信号 |
| 抛出异常 | 通过抛出异常,把这个中断事件显式地“抛”出去,让外部代码知道线程被中断了 |

596

被折叠的 条评论
为什么被折叠?



