线程状态(生命周期)
-
New(新建):当线程对象被创建时,它处于新建状态。在这个阶段,线程尚未启动。
-
Runnable(可运行):在新建状态之后,调用线程的
start()
方法将其置为可运行状态。此时,线程已经准备好运行,并且等待系统的调度。 -
Running(运行):线程进入运行状态时,它会执行其
run()
方法中的代码。线程可以由操作系统的调度器选择并分配CPU时间片来执行。 -
Blocked(阻塞):当线程被阻塞时,它暂停执行,并且不会占用CPU资源。线程可能被阻塞的原因包括等待输入/输出完成、等待获取锁或者等待其他条件满足。
-
Waiting(等待):线程在等待某个特定条件满足时进入等待状态。线程可以通过调用
wait()
方法使自己进入等待状态,并且只能通过其他线程的通知或者等待时间结束来唤醒。 -
Timed Waiting(计时等待):与等待状态类似,但是线程在等待一段特定的时间后会自动唤醒。
-
Terminated(终止):当线程的
run()
方法执行完毕或者出现了未捕获的异常时,线程进入终止状态。在终止状态下,线程不会再执行任何代码。