线程开始后 100ms 就中断了线程, 但是线程还是执行完毕了, 说明线程并没有在调用 interrupt() 方法后立即停止;
(2) 线程停止状态判定
两个线程停止状态判定的方法 :
-- 1....退出循环 : 如果查询到中断标志后, 直接使用 break 退出循环;
-- 5. 弊端 : 在线程中, 线程没有真正的停止, 线程还是完整的执行了;
线程正常退出代码示例 :
-- 1....总结分析 : 在线程中调用 interrupted() 方法, 查询中断标志(查询后立即清除中断标志), 弊端是停止线程后, 线程还是继续执行后面的逻辑, 继续执行完毕, 自动退出的;
(2) 异常退出线程...异常退出范围可控 : 可以自由控制中断哪些操作, 继续执行哪些操作;
代码测试 :
-- 1....总结 : 使用 Interrupt 方法后, 如果正在执行循环, 就不会抛异常退出线程, 进入 sleep 状态后, 会立即抛出异常, 退出线程;
4. stop() 停止线程
(1) stop 方法停止线程的效果