Java多线程并发中,如何详细理解线程的生命周期及常用操作方法?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2399个文字,预计阅读时间需要10分钟。
程序生命周期+一个线程不是被创建了就开始执行,也不是一直处于执行状态。在程序的整个生命周期中,会经历新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和销毁(Destruction)阶段。
线程生命周期
一个线程不是被创建了马上就开始执行,也不是一直处于执行状态。在线程的整个生命周期中会经历新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和销毁(Terminated)5 种状态。
线程全生命周期.PNG
新建
指使用 new 关键字创建一个新的线程对象后,该线程就处于新建状态。此时仅由 JVM 为其分配内存,并初始化其成员变量的值。
就绪
当线程对象调用了 start() 方法之后,该线程处于就绪状态。JVM 会为其创建方法调用栈和程序计数器,等待调度运行。
运行
如果处于就绪状态的线程获得了 CPU 时钟,开始执行 run() 方法的线程执行体,则该线程处于运行状态。
阻塞
阻塞状态是指线程因为某种原因放弃了 CPU 使用权,暂时停止运行。
本文共计2399个文字,预计阅读时间需要10分钟。
程序生命周期+一个线程不是被创建了就开始执行,也不是一直处于执行状态。在程序的整个生命周期中,会经历新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和销毁(Destruction)阶段。
线程生命周期
一个线程不是被创建了马上就开始执行,也不是一直处于执行状态。在线程的整个生命周期中会经历新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和销毁(Terminated)5 种状态。
线程全生命周期.PNG
新建
指使用 new 关键字创建一个新的线程对象后,该线程就处于新建状态。此时仅由 JVM 为其分配内存,并初始化其成员变量的值。
就绪
当线程对象调用了 start() 方法之后,该线程处于就绪状态。JVM 会为其创建方法调用栈和程序计数器,等待调度运行。
运行
如果处于就绪状态的线程获得了 CPU 时钟,开始执行 run() 方法的线程执行体,则该线程处于运行状态。
阻塞
阻塞状态是指线程因为某种原因放弃了 CPU 使用权,暂时停止运行。

