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

敢问这个程序是怎么结束的吗?

敢问这个程序是怎么结束的吗?我看不到哪里是结束语句,按理说他是个无限循环的啊!!

正在回答

4 回答

个人理解为在Stage类的run()中

armyOfSuiDynasty.start();
armyOfRevolt.start();

之后的

try {
    Thread.sleep(50);
} catch (InterruptedException e) {
    e.printStackTrace();
}

这句代码起到了作用,也就是说在两军交战的50ms之内stage线程处于休眠不会参与到对处理器的竞争中,而50ms的休眠时间过后,stage线程参与竞争处理器使用,将keepRunning设为false,结束军队的两个线程。

不知理解的对不对,还请指正。


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

在单核机器中,可以那么理解,主线程休眠了,其他线程获得资源运行。但是现在电脑都是多核。可以同时,不是以前基于单核分片执行。Thread.sleep(100);就是当前线程睡眠0.1秒,

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

Adsun

这个回答,我同意
2015-07-21 回复 有任何疑惑可以回复我~
#2

qq_老表_1

当前线程休眠了 那为什么线程内的 线程还可以运行呢?(如隋军,起义军) 舞台{隋军,起义军} 舞台包含了隋军,和起义军 为什么舞台都休眠了 隋军和起义军的线程还在继续运行呢?
2016-03-24 回复 有任何疑惑可以回复我~

这个是线程休眠,等待0.1s后线程再执行,如果遇见异常就抛出。

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

try {

Thread.sleep(100);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}


这个事件是控制主线程的吗?也就是main这个线程,当主线程休眠的时候,也就是其他线程运行的时间?想了很久,只能只能理解了,初学者,不知道对不对!!!?

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

举报

0/150
提交
取消

敢问这个程序是怎么结束的吗?

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