_细嗅蔷薇
2018-08-21 23:24
这里面不懂得是农民军和隋军攻击时循环的次数是根据什么决定的?
视频里是写死的for循环
是通过执行stage的线程中的sleep方法,让军队的想成获得了时间资源进行,然而有yield的方法存在造成了两边军队的随机进攻
自己的一个理解,希望可以帮到你;如果有误希望提出改正
Stage的休眠时间长短来决定双方军队的次数,也就是决定子线程军队有没有更多的时间去执行循环里的代码也就是军队去攻击;Stage是主线程,主线程里面又嵌套了两个子线程,只有当Stage主线程让出CPU,子线程才能来得及在while循环也就是军队攻击
Thread.sleep(50);
双方军队的你来我往形式的攻击或者军队单方面形式的攻击是由于使用了Thread.yield()导致的;CPU可能连续执行一个线程,也可能执行你一次我一次。
深入浅出Java多线程
186088 学习 · 464 问题
相似问题