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

来源:7-13 join中断

Sivel

2020-04-11

图片描述

写回答

2回答

悟空

2020-04-11

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

0
0

悟空

2020-04-11

复制一下完整代码吧

0
1
Sivel
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
共1条回复

线程八大核心+Java并发原理及企业级并发解决方案

完整的并发知识网络+丰富的工作内容分享+50余道并发高频面试题

2512 学习 · 939 问题

查看课程