Image.png

  1. 新生状态

    1. 用new关键字和thread类或其子类建立的对象之后,
    2. 有自己的内存空间,通过start()方法进入就绪状态(runnable)
  2. 就绪状态

    1. 线程已经具备了运行条件,但是还没有分配到CPU
  3. 运行状态

    1. 执行的run()方法里的代码,直到调用其他方法终止,或者等待某种资源而阻塞完成任务而死亡
  4. 阻塞状态

    1. 在运行状态的线程,执行了sleep()方法,或等待I/O设备的资源,让出CPU并暂停自己的运行
    2. 如果睡眠时间已到,或者I/O设备资源空闲,就会重新进入就绪状态,等待执行
  5. 死亡状态

    1. 线程生命周期的最后一个状态死亡原因有两个,正常完成,或者线程被强行终止,例如下面的两个方法
    2. 但是不建议使用stop和destory方法,前者会产生异常,后者是强制终止,不会释放对象锁