高频面试题:java线程间6种状态,与状态间的相互转换条件

前置知识:一个cpu内核只能执行一个线程,如果有多个线程,则根据系统调度,根据分配的时间片执行不同的线程。因此,一个程序不是一直在执行,而是随着时间片的分配,执行–>停止–>执行循环往复,如此线程就有了不同的状态。

Java面试常见问题:Java线程的六种状态

处于等待态的线程需要等待其他线程的指示才能继续运行,比如其他线程 join 结束,或者调用了对象的 notify 或 notifyAll 方法通知唤醒,或者执行 Locksupport.unpark 方法。

java线程状态之WAITING(等待)

最后,我们还可以使用 LockSupport 类的 park 静态方法将线程设置为 WAITING 状态。这很重要,因为同步块在代码中需要同步代码块,这会强制刷新所有变量,如果不需要,可能会降低性能。

java线程状态

new 创建未运行runnable 运行中blocked 阻塞状态waiting 等待其他进程运行结束time_waiting 限定时间内等待terminated 正常终止

网站地图