public class Daemon implements Runnable { Thread A,B; public Daemon() { A = new Thread(this); B = new Thread(this); } @Override public void run() { Thread t = Thread.currentThread(); if(t == A){ for (int i = 0; i < 8; i++) { System.out.println("i = " + i);// try {// Thread.sleep(1000);// } catch (InterruptedException e) {} } }else if(t == B){ while(true){ System.out.println("线程B是守护线程");// try {// Thread.sleep(1000);// } catch (InterruptedException e) {} } } }}为什么程序的运行结果是无数个 "线程B是守护线程",而另一个线程A并没有执行呢
3 回答
逆光之羽
TA贡献55条经验 获得超13个赞
执行的线程的部分的代码怎么写的?
应该是你while(true)造成死循环的原因吧?就算你执行代码打算把Daemon跑上多次,第一次进入
else if(t == B){
while(true){
}}
这个判断条件之后程序就卡死在里面了,一直输出"线程B是守护线程"也是正常的吧
老实说你这代码的思路没看懂orz 只能猜个大概
添加回答
举报
0/150
提交
取消