个人理解
源码介绍
应用场景
图片取自:https://zhuanlan.zhihu.com/p/27857336
执行应用场景
个人理解:主观意思上Thread执行中通过中断线程进行线程生命周期的控制。
线程的状态
要了解线程的中断过程
首先了解线程的几种状态
new : 线程已经创建完毕但未开始执行
runnable : 线程正在JVM中运行
blocked :线程处于阻塞状态,并且等待获取监听器
waiting : 线程在等待另一个线程
timed_waiting : 线程在等待另一个线程一定的时间
terminated : 线程执行完毕
interterupt改变线程的属性值,使得isinterrupt()方法返回值进行改变
调用下方native方法
Interrupt只是改变要中断线程的中断状态,线程并不会停止
isInterrupt()判断当前线程中断状态。
main方法执行interrupt线程仍在循环打印,
让线程run方法一直进行循环
可以看到线程中断判断值的改变
当在线程中执行sleep方法,线程抛出InterruptedException异常
如源码所说
至于退出循环可以如此
让线程停止可以
然后自己捕获