BreadCrumb
2015-06-29 00:14
敢问这个程序是怎么结束的吗?我看不到哪里是结束语句,按理说他是个无限循环的啊!!
个人理解为在Stage类的run()中
armyOfSuiDynasty.start(); armyOfRevolt.start();
之后的
try { Thread.sleep(50); } catch (InterruptedException e) { e.printStackTrace(); }
这句代码起到了作用,也就是说在两军交战的50ms之内stage线程处于休眠不会参与到对处理器的竞争中,而50ms的休眠时间过后,stage线程参与竞争处理器使用,将keepRunning设为false,结束军队的两个线程。
不知理解的对不对,还请指正。
在单核机器中,可以那么理解,主线程休眠了,其他线程获得资源运行。但是现在电脑都是多核。可以同时,不是以前基于单核分片执行。Thread.sleep(100);就是当前线程睡眠0.1秒,
这个是线程休眠,等待0.1s后线程再执行,如果遇见异常就抛出。
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
这个事件是控制主线程的吗?也就是main这个线程,当主线程休眠的时候,也就是其他线程运行的时间?想了很久,只能只能理解了,初学者,不知道对不对!!!?
深入浅出Java多线程
186088 学习 · 464 问题
相似问题