Java线程之生命周期
2024-10-06 21:33:43
简述
以下类图展示了线程生命周期中不同的状态。我们可以创建一个线程并启动它,但是线程状态从Runnable、Running、Blocked等状态的变化取决于系统线程调度器,java本身并不能完全控制。
线程状态
New(新建状态)
当我们用new创建一个线程对象时,线程的状态是***新建状态***,这个状态并不代表线程已经执行了,只是Java编程中的一个内部状态
Runnable(就绪状态)
当我们调用线程实例对象的start()方法时,它的状态变成了*Runnable(就绪状态)*****,这是状态下线程调度器将会调动它
Running(运行状态)
当线程被线程调度器调度后,它的状态变成了Running(运行状态),CPU开始执行这个线程。一个线程的状态之所以可以变为Runnable, Dead 或 Blocked,取决于时间切片
Blocked/Waiting(阻塞/等待状态)
一个线程处于阻塞状态是因为等待其它线程执行完成或等待其它资源。一旦一个线程阻塞状态结束,它的状态将变成Runnable状态并且它将被转移到可执行线程池
Dead(死亡)
一旦线程执行完成,它的状态将被转换为Dead(死亡)
最新文章
- Ehcache 缓存使用
- gridview 经典
- 【转】Win 7 下源码运行OpenERP7.0
- StringBuffer的用法
- java中四种操作(dom、sax、jdom、dom4j)xml方式详解与比较
- Windows Phone 8本地化多语言支持
- CSS概要
- Android ListView 设置单选
- ASP.NET Core 入门
- java设计模式---构建者模式
- 二、PHP基本语法 - PHP零基础快速入门
- 性能测试过程中oracle数据库报ORA-27301 ORA-27302错
- IdentityServer4授权和认证
- 联盟链初识以及Fabric环境搭建流程
- 洛谷P3987 我永远喜欢珂朵莉~(set 树状数组)
- PYTHON-模块定义 搜索路径
- fiddler工具能干啥
- 网络游戏程序员须知 UDP vs TCP(转)
- UE如何使用正则表达式
- GridView的简单使用