java 线程 模型 状态

来源:互联网 发布:送男生什么礼物知乎 编辑:程序博客网 时间:2024/06/06 05:53

状态

创建(New)

创建后尚未启动

运行(Runable)

包括操作系统线程状态中的Running和Ready
可能正在运行,也可能正在等待为它分配执行时间

无限期等待(Waiting)

不会被分配CPU时间,等待被其他线程显示唤醒。
Object.wait()没有设置Timeout
Thread.join()没有设置Timeout
LockSupport.park()

期待等待(Timed Waiting)

不会被分配CPU时间,但是不需要等待其他线程唤醒,在一定时间后由系统自动唤醒
Thread.sleep()
Object.wait()设置了Timeout
Thread.join()设置了Timeout
LockSupport.parkNanos()
LockSupport.parkUntil()

阻塞(Blocked)

阻塞等待 获取一个排他锁,另外一个线程放弃这个锁的时候发生,线程进入同步区域,进入阻塞

结束(Terminated)

已终止线程的状态。线程已经结束执行。

状态切换

这里写图片描述

线程调度方法

抢占式,分优先级

参考:深入理解java虚拟机

原创粉丝点击