线程的生命周期
- 新建(NEW)
- 就绪(RUNNABLE)
- 运行(RUNNING)
- 阻塞(BLOCKED)
- 死亡(DEAD)
线程的生命周期状态描述
新建:在Java中使用了new关键字创建一个新线程,同时为这个线程分配内存并初始化一些成员变量的值,这时候这个线程就是处于新建状态。
就绪: 新建的线程调用了start方法,这时候JVM会把线程私有的虚拟机栈和本地方法栈以及程序计数器创建好,线程状态转变为就绪。
运行: 就绪状态的线程抢到了CPU的资源同时开始执行run方法里的具体业务逻辑,线程状态转为运行。
阻塞: 在运行中的线程放弃了CPU的使用权,然后暂停了运行,这时候线程就转为阻塞状态。
死亡:线程正常结束或者是异常结束甚至是手动结束,线程都会进入死亡状态。
线程生命周期流程图