Java中线程的状态通常分为六种,它们是:
新建状态(NEW):
线程对象被创建后,但还没有调用`start()`方法。
可运行状态(RUNNABLE):
线程调用了`start()`方法后,进入就绪状态,等待操作系统调度执行。
阻塞状态(BLOCKED):
线程因为等待获取某个锁,暂时停止运行。
等待状态(WAITING):
线程需要等待其他线程做出一些特定的动作,如调用`Object.wait()`或`Thread.join()`。
计时等待状态(TIMED_WAITING):
线程在等待某个条件发生,但设置了超时时间,如`Thread.sleep(long ms)`或`Object.wait(long ms)`。
终止状态(TERMINATED):
线程执行完`run()`方法或因异常退出,线程结束生命周期。
这些状态描述了线程从创建到结束的不同阶段。线程状态之间的转换通常由Java虚拟机(JVM)根据线程调度和操作系统的线程调度机制来管理。