请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

悟空老师, 那个验证正在运行的线程是 RUNNABLE 状态的话,为什么不直接在 run() 方法中打印呢?

就好比是这个样子?

    @Override
    public void run() {
        // 线程的第二种状态 RUNNABLE
        System.out.println(Thread.currentThread().getState());
        for (int i = 0; i < 1000; i++) {
            System.out.println(i);
        }
    }

正在回答

2回答

悟空 2019-09-28 10:29:43

也可以的,两种方法效果相同。

1 回复 有任何疑惑可以回复我~
小瑞111 2019-09-28 10:37:39

我觉得在run方法打印状态也只能打印出RUNNABLE状态,毕竟只有当前线程运行的时候才能执行这行代码,如果当前前程被阻塞了,是不会运行这行代码的,也就不会打印当前线程的状态,但是如果我们在其他运行中的线程去打印此线程的状态,是可以打印出被阻塞线程的状态。

1 回复 有任何疑惑可以回复我~
  • 提问者 qq_弹簧_3 #1
    如果是在其他线程中打印 thread1 线程的状态,打印状态的时候 thread1 并不是正在运行的啊。这个样子无法验证 当前正在运行的线程是 runnable 的吧。
    回复 有任何疑惑可以回复我~ 2019-09-28 10:52:16
  • 小瑞111 回复 提问者 qq_弹簧_3 #2
    如果是thread1线程是RUNNABLE状态,那么其他运行着的线程去打印它就是RUNNABLE状态,可以验证的。
    回复 有任何疑惑可以回复我~ 2019-09-28 11:12:29
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信