多线程 之线程的生命周期

在这里插入图片描述

线程是存在生命周期的。线程的生命周期分为五种状态:
1.新建状态
当线程使用new 关键字创建了一个线程以后,线程就出于新建状态。和其他对象一样,仅仅被分配内存,并初始化成员变量的值。
2.准备状态
当线程调用start()方法后进入准备状态。由cpu来决定哪个线程进入运行状态。
注意:
1.线程从新建状态进入到准备状态后,不可能在进入新建状态。
2.在等待/阻塞的线程被解除后,不能直接进入运行状态,而是进入准备状态。
3.首先进入准备状态的线程,由系统决定哪一个先进入运行状态、
3.运行状态
出于准备状态的线程被cpu选中进入运行状态,在运行状态中执行run()方法中的执行体。
在运行状态下可能被cpu中的调度程序调度到准备状态。
在单核cpu中只有一个线程在运行,在多核cpu中有多个线程在运行。
4.等待/阻塞状态
线程中有很多线程调度的方法,包括睡眠、阻塞、挂起和等待,这些方法会使得正在运行的方法处于等待/阻塞状态,
这些等待/阻塞状态的线程被解除后,不会立即回到运行状态,而是进入准备状态,等待系统的调度。
5.死亡状态
当线程的run()方法执行结束后,或者程序发生异常终止运行后,线程就会进入死亡状态。
处于死亡状态的线程就不能在使用start()方法启动线程,

猜你喜欢

转载自blog.csdn.net/weixin_43247990/article/details/83420788