请稍等 ...
×

采纳答案成功!

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

老师,请问为什么thread-0对应的状态显示是sleeping ,而不是六种线程状态里面的timed_waiting

正在回答 回答被采纳积分+3

2回答

悟空 2020-04-11 14:26:22

dubugger显示的状态不是6种线程状态,你需要用System.out.println把状态打印出来来看

0 回复 有任何疑惑可以回复我~
悟空 2020-04-11 09:54:57

复制一下完整代码吧

0 回复 有任何疑惑可以回复我~
  • 提问者 Sivel #1
    package threadcoreknowledge.threadobjectclasscommonmethods;
    
    /**
     * 描述:     先join再mainThread.getState()
     * 通过debugger看线程join前后状态的对比
     */
    public class JoinThreadState {
        public static void main(String[] args) throws InterruptedException {
            Thread mainThread = Thread.currentThread();
            Thread thread = new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        Thread.sleep(3000);
                        System.out.println(mainThread.getState());
                        System.out.println("Thread-0运行结束");
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            });
            thread.start();
            System.out.println("等待子线程运行完毕");
            thread.join();
            System.out.println("子线程运行完毕");
    
        }
    }
    回复 有任何疑惑可以回复我~ 2020-04-11 10:34:54
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信