多线程的生命周期

五种状态

新生态(NEW)、就绪态(Runnable)、运行态(Running)、阻塞态(Blocked)、死亡态(Dead)

  • NEW:就是通过new方法,new出来的线程
  • Runnable:通过调用线程的start()方法后,线程处于等待CPU分配资源阶段,抢占CPU后可以执行
  • Running:当就绪的线程被调度并且获得CPU后进入运行状态,run方法定义了线程的操作和功能
  • Blocked:在运行态的时候,可能由于某些原因导致运行的线程变成阻塞状态,比如sleep()、wait()之后线程就处于了阻塞状态,这个时候需要其他机制将处于阻塞状态的线程唤醒,比如调用notify或者notifyAll方法,唤醒的线程不会立刻执行run方法,要等待CPU分配资源进入运行态。
  • Dead:死亡态,如果线程正常执行完毕后或者线程提前被请执行的终止或者异常导致结束,那么线程就会被销毁,释放资源。

多线程的生命周期_第1张图片

你可能感兴趣的:(并发,java,并发编程,多线程)