1、NEW和TERMINATED
NEW:还未启动,start
TERMINATED:线程运行结束
效果:并不会设置线程的中断标识位,什么事也不会发生。
2、RUNNABLE
运行状态,不一定所有处于RUNNABLE状态的线程都能获得CPU运行,没有获得cpu时间片的没有真正在运行
效果:只是设置中断状态位,不会让线程实际中断,需要程序自己去判断(增加程序灵活性)。
该状态说明该线程由于竞争某个锁失败被挂在了阻塞队列上
效果:只是设置中断状态位,不会让线程实际中断
4、WAITING和TIMED_WAITING
WAITING:无期限等待知道notify
TIMED_WAITING:等待指定时间
线程运行中由于缺少某个条件而被挂起在某个对象的条件队列上
效果:会抛出一个InterruptedException异常,并清空中断标志位
NEW和TERMINATED对于中断操作几乎是屏蔽的
RUNNABLE和BLOCKED类似,对于中断操作只是设置中断标志位并没有强制终止线程,对于线程的终止权利依然在程序手中。
WAITING/TIMED_WAITING状态下的线程对于中断操作是敏感的,他们会抛出异常并清空中断标志位。
Original: https://www.cnblogs.com/siqi/p/11369061.html
Author: 思齐_
Title: 线程中断
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/542112/
转载文章受原作者版权保护。转载请注明原作者出处!