我写了一个小程序来检查运行时线程的状态 -
public class ClassExtendingThread extends Thread{
public void run() {
for(int i=0;i < 100;i++)
System.out.println(Thread.currentThread().getState() + " - run method");
}
}
但是,输出显示它是状态为Runnable。不应该跑步吗?
RUNNABLE - 运行方法 RUNNABLE - 运行方法 RUNNABLE - 运行方法
答案 0 :(得分:4)
NEW 尚未启动的线程处于此状态 RUNNABLE 在Java虚拟机中执行的线程处于此状态 BLOCKED 被阻止等待监视器锁定的线程处于此状态 等候 无限期等待另一个线程执行特定操作的线程处于此状态 TIMED_WAITING 正在等待另一个线程执行最多指定等待时间的操作的线程处于此状态 TERMINATED 退出的线程处于此状态。
答案 1 :(得分:0)
这是正确的,因为Running不是多线程中的状态,但runnable是一个状态,其中线程正在Java虚拟机中执行,但它可能正在等待来自操作系统的其他资源,如处理器。