当我们使用new运算符创建一个新的Thread對象时线程状态是New Thread。此时线程不活动,它是Java编程内部的状态
当我们在Thread对象上调用start()函数周期公式时,它的状态被更改为Runnable控制权被赋予Thread调度程序以完成它的执行。是否立即运行此线程或在运行之前将其保留在可运行的线程池中取决于线程调度程序的OS实现。
当线程囸在执行时它的状态将更改为Running。线程调度程序从可运行的线程池中选择一个线程并将其状态更改为Running。然后CPU开始执行该线程线程可以將状态更改为Runnable,Dead或Blocked从运行状态取决于时间切片线程完成run()方法或等待某些资源。
一个线程可以等待其他线程使用完成或者它可以等待一些资源可用。例如或或IO资源,然后它的状态更改为等待一旦线程等待状态结束,它的状态就会变为Runnable并且它会被移回可运行的线程池。
一旦线程执行完毕它的状态就会变为Dead,并且它被认为不存在
以上是线程的不同状态。知道它们以及线程如何改变它的状态是很恏的这就是java中线程生命周期的全部内容。