线程while循环暂停时间过长

class TempThread extends Thread
{
boolean falg = true;
public void run()
{
while(flag)
{
xxxx//执行操作
}
}
}

然后我又创建了一个线程。

emp % 50 == 0 的时候设置flag = false;
temp%300 == 0 的时候设置flag = true;

在50~300 累加的过程中,debug界面,发现这个线程被回收了。。
标签的线程看不到在运行了。
这是为什么?

2个回答

你的while循环不走了,任务结束了,线程就结束了吧。

wang735164515
qq5w 如果任务结束之后,按照java的垃圾回收机制,这个线程应该被销毁了吧,那么更改这个flag的时候应该报空指针的异常才对吧?但是输出结果,可以改变flag的值,但是run里面的while循环不运行了。
接近 4 年之前 回复

while走完之后,线程的run方法就结束了,但是还是可以修改这个类的任何参数
,和线程是否被销毁没关系,你main方法里面的实例还在,引用还在,就能修改任何东西,包括重新启动线程。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐