舞台休眠sleep(50) 的理解 请大家帮我看看对吗?

来源:2-4 Java线程-隋唐演义实战开发---军队

qq_老表_1

2016-03-24 00:11

主要在于这个yield()方法

yield()让出线程后--》 程序应该已经跳出当前军队这个线程了--》然后隋军,起义军,舞台三条线程开始争夺运行权, 但是正好这时设置了 舞台休眠sleep(50) 导致舞台无法参与竞争--》所以只有隋军和起义军参与争夺。 

而且整个程序运行时间正好就是舞台休眠的时间 ,舞台休眠完成后 --》隋军和起义军停止攻击 (keepRunning=false) --》最后中断舞台线程(join()) .


所以我理解为:打印结果输出的内容全部都是在舞台休眠sleep(50)(50毫秒)内完成的对吗?

写回答 关注

1回答

  • u_sicAsiaChina_0
    2016-03-24 10:59:17
    已采纳

    不不,第一这个yield(),只是在军队这个线程里,和舞台没有关系;第二休眠50毫秒是整个舞台停止进程50毫秒,舞台停止的50毫秒中,军队线程是继续执行的;第三join()方法执行后会让出所有资源给它的对象,而在打印的输出实在无时无刻不进行的,也就在舞台里的打印输出会因为舞台线程的休眠而休眠

    qq_老表_...

    非常感谢!

    2016-03-31 18:31:19

    共 3 条回复 >

深入浅出Java多线程

带你一起深入浅出多线程,掌握基础,展望进阶路线

186071 学习 · 498 问题

查看课程

相似问题