如图 java线程的生命周期主要分为
新建: :新建这一刻 他会创建出一个线程对象 这个就是我们通过new线程类 这部操作实现的
当我们通过new出来的线程对象 执行 start方法之后 他就会进入第二个生命周期
就绪: 在这个过程中 他有执行资格 就是他是可以执行线程的程序的 但这个阶段没有执行权 因为CPU的使用权是程序分配的,可能当前还有其他线程在使用CPU的使用权
当线程获得到CPU使用权之后 他就会进入下一个生命周期
运行: 这个阶段 线程会执行run方法中的代码
在运行阶段 如果被其他线程抢走 CUP执行权 则线程会重新回到 就绪阶段 继续去和其他线程抢CPU的使用权
当线程被执行了 stop 或者 run方法的代码正常执行结束 又或者 当前线程是守卫线程 主线程已经执行结束 则进入到最后一个生命周期
死亡: 线程执行结束 变成了垃圾
还有一个有点特殊的生命周期 最典型的就是 在执行过程中 被使用了sleep休眠方法 或者其他程序 让线程暂时停止运行 他就会进入生命周期
阻塞: 因为特殊原因 线程不得已停止一段时间 待时间结束 重新进入就绪状态