JAVA线程的状态及转换
JAVA线程的状态及转换
-
确定线程当前的状态,可以通过 getState() 方法
-
Java 中的 Runable 状态对应操作系统线程状态中的两种状态,分别是 Running 和 Ready,也就是说,Java 中处于 Runnable 状态的线程有可能正在执行,也有可能没有正在执行,正在等待被分配 CPU 资源。
-
Blocked 与 Waiting 的区别:
- Blocked 在等待其他线程释放 monitor 锁,而 Waiting 则是在等待某个条件,比如 join 的线程执行完毕,或者是 notify()/notifyAll() 。
- Blocked 仅仅针对 synchronized monitor 锁