线程状态 - Runnable - 即使线程正在运行

时间:2017-09-30 16:40:32

标签: java multithreading

我写了一个小程序来检查运行时线程的状态 -

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 - 运行方法

2 个答案:

答案 0 :(得分:4)

根据documentation

,以下是可能的状态
  

NEW   尚未启动的线程处于此状态   RUNNABLE   在Java虚拟机中执行的线程处于此状态   BLOCKED   被阻止等待监视器锁定的线程处于此状态   等候   无限期等待另一个线程执行特定操作的线程处于此状态   TIMED_WAITING   正在等待另一个线程执行最多指定等待时间的操作的线程处于此状态   TERMINATED   退出的线程处于此状态。

答案 1 :(得分:0)

这是正确的,因为Running不是多线程中的状态,但runnable是一个状态,其中线程正在Java虚拟机中执行,但它可能正在等待来自操作系统的其他资源,如处理器。