并发设计模式
终止线程
如何在线程 1 中终止线程 2?
- 使用 stop,不能确保线程 2 完整结束
- System.exit(int),会终止整个程序
- 使用中断机制
两阶段终止模式
第一阶段 T1 对 T2 发出终止指令,第二阶段 T2 响应终止指令
实现
java 线程进入终止状态的前提是进入 RUNNABLE 桩体,利用中断机制的 interrupt() 方法,将线程从休眠状态转换到 RUNNABLE 状态。
然后在 T2 中设置标志位,当 T2 会合适时机检查标记位,判断标志位来决定自己是否退出 run() 方法