学习中心
登录
已解决
为啥是WAITING 状态?
在main方法中写下面的代码:
我的问题是:  第五行代码, 主线程的状态为啥是   WAITING  状态?不应该是TIMED_WAITING状态吗?
您的课上说sleep和join方法,都是TIMED_WAITING状态


        //6.2  join方法
        Thread maint = Thread.currentThread();
        Thread t7 = new Thread(
                ()->{
                    System.out.println("我是t7子线程..., 我强占cpu,主线程被进入阻塞状态, 等我执行完以后, 主线程被自动唤醒");
                    System.out.println("before 3s, t7="+maint.getState());//这里为啥是   WAITING  状态?不应该是TIMED_WAITING状态吗?
                    try {
                        Thread.sleep(3000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
        );
        t7.start();
        t7.join();//main主线程进入阻塞状态, t7子线程强占cpu时间片, 此时main线程的状态是TIMED_WAITING
        System.out.println("after 3s, t7="+maint.getState());//RUNNABLE
117 1
    1个回答
    你还没有查看该回答的权限哦~请先获取查看权限
    立即查看
    写回答