JAVA 线程生命周期

Java 线程生命周期是什么呢?在不同阶段又有什么含义呢?

线程从创建到运行完成要经历下面这些阶段:

  • New
  • Runnable
  • Running
  • Non-Runnable (blocked)
  • Terminated

New: 已经创建了该线程类的实例,但是还没有调用 start() 方法。

Runnable: 线程已经调用了 start() 方法,已经可以运行了,正在等待线程调度器(Java 采用操作系统的线程调度器)来运行。

Running: 线程已经被线程调度器选中并正在运行中。

Non-Runnable (blocked): 线程还存在但是没有资格运行。可能的原因有:sleep 操作、等待文件 I/O 的完成或等待释放锁状态等等。

Terminated: 线程已经运行结束,处于中止状态, run() 方法已经退出。

下面这幅图表述的是各个阶段的转换过程:


Java 线程状态流转.png

阅读英文原文

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容