为了账号安全,请及时绑定邮箱和手机立即绑定

如果把keepRunning=false放在 程咬金大杀四方之后 join怎么理解?

join是指让其他线程等待当前线程终止。
如果

Thread k3 = new keyThread();//程咬金
k3.start();
k3.join();
隋军.keepRunning = false;
民兵.keepRunning = false;

这么写,随军冲锋和民兵冲锋会贯穿在程咬金的活动中间,看不出来join的效果啊

正在回答

2 回答

在A线程中调用了B线程的join方法,意思是直到线程A执行完毕后才会执行线程B,所以这里的join只对舞台线程起作用。对起义军和隋军线程,程咬金的join方法根本不起作用。我试了下,把keepRunning设为false的语句注释掉,发现即使加上chengyaojin.join(),这两个线程也不会停止,会一直运行下去。

1 回复 有任何疑惑可以回复我~
#1

Goldberg 提问者

非常感谢!
2016-04-27 回复 有任何疑惑可以回复我~
#2

寒食君Talk

对答主的回答不太理解。“在A线程中调用了B线程的join方法,意思是直到线程A执行完毕后才会执行线程B”这句话。在Stage线程中调用了Cheng线程的join方法,意思是直到Stage执行完后才会执行Cheng线程? 是不是反了?还是我理解错了?
2016-08-14 回复 有任何疑惑可以回复我~

我的理解是这里执行join方法的线程是stage线程,所以只有stage线程会停止,等待程咬金线程的完成,而因为stage线程的停止,keepRunning=false暂时不会执行,所以隋军和农民起义军两个线程不会停止

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

如果把keepRunning=false放在 程咬金大杀四方之后 join怎么理解?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信