线程各个状态转换
2021-08-01 21:16:29 0 举报
线程各个状态转换
作者其他创作
大纲/内容
RUNNING
同步阻塞或IO阻塞--------等待获取锁,待synchronized同步块
WAITING
RUNNABLE
可运行态至超时等待状态
阻塞状态(BLOCKED)
终止状态(TERMINATED)
TERMINATED
初始状态(NEW)
异常中断(interupt)或者执行完毕(run)
等待状态(WAITING)
Object.notify()/Object.notifyAll()/LockSupport.unpark(Thread)
Thread.start()
Object.notify()/Object.notifyAll/LockSupport.unpark(Thread)
同步块释放或IO完成------同步synchronized同步块
初始状态至可运行状态
获得CPU执行时间执行run()
超时等待状态(TIME_WAITING)
运行中(RUNNING)
执行完成
BLOCKED
实例化
TIME_WAITING
运行状态RUNNING
Object.wait(long)/Thread.sleep(long)/Thread.join(long)LockSupport.parkNanos()/LockSupport.parkUntil()
Object.wait()/Thread.join()/LockSupport.park()
分配资源start()
获取CPU执行时间执行run()
主动等待------Object.wait()Thread.join()
可运行状态至终止状态
获取CPU执行时间执行run方法
NEW
yield()系统调度
可运行态至阻塞状态
等待被唤醒-----Object.notify()Object.notifyAll()run()执行完毕
可运行态至等待状态
主动睡眠------Object.wait()Thread.join()Thread.sleep()
获取到锁
等待进入synchronized方法/程序块
就绪(REDAY)
睡眠时间期限已满
0 条评论
回复 删除
下一页