2020-10-30 13:54发布
线程的生命周期包含5个阶段,包括:新建、就绪、运行、阻塞、销毁。
新建
就绪
运行
阻塞
销毁
新建: 就是刚使用 new 方法,new 出来的线程;
就绪: 就是调用的线程的 start() 方法后,这时候线程处于等待 CPU 分配资源阶段,谁先抢到 CPU 资源,谁开始执行;
运行: 当就绪的线程被调度并获得 CPU 资源时,便进入运行状态,run() 方法定义了线程的操作和功能;
阻塞: 在运行状态的时候,可能因为某些原因导致运行状态的线程变成了阻塞状态,比如 sleep()、wait() 之后线程就处于了阻塞状态,这个时候需要其他机制将处于阻塞状态的线程唤醒,比如调用 notify 或者 notifyAll() 方法。唤醒的线程不会立刻执行run 方法,它们要再次等待 CPU 分配资源进入运行状态;
销毁: 如果线程正常执行完毕后或线程被提前强制性的终止或出现异常导致结束,那么线程就要被销毁,释放资源;
最多设置5个标签!
线程的生命周期包含5个阶段,包括:
新建
、就绪
、运行
、阻塞
、销毁
。新建: 就是刚使用 new 方法,new 出来的线程;
就绪: 就是调用的线程的 start() 方法后,这时候线程处于等待 CPU 分配资源阶段,谁先抢到 CPU 资源,谁开始执行;
运行: 当就绪的线程被调度并获得 CPU 资源时,便进入运行状态,run() 方法定义了线程的操作和功能;
阻塞: 在运行状态的时候,可能因为某些原因导致运行状态的线程变成了阻塞状态,比如 sleep()、wait() 之后线程就处于了阻塞状态,这个时候需要其他机制将处于阻塞状态的线程唤醒,比如调用 notify 或者 notifyAll() 方法。唤醒的线程不会立刻执行run 方法,它们要再次等待 CPU 分配资源进入运行状态;
销毁: 如果线程正常执行完毕后或线程被提前强制性的终止或出现异常导致结束,那么线程就要被销毁,释放资源;
一周热门 更多>