丶Demons
2016-08-01 12:00
我自己运行的代码,起义军和隋军几乎是交替执行,而且开始的时候不是从0开始的
线程是通过抢占CPU资源去运行的,随机交替着是随机的现象;至于不是从0开始,可以通过代码的调试,去看i的变化。
不是从零开始的问题是数据太大,无法显示那么多,不过为什么我的代码没有出现过单方面连击的情况,都是交替进行的
package com.haha;
public class ArmyRunnable implements Runnable {
volatile boolean keepRuning = true;
@Override
public void run() {
while(keepRuning){
for (int i = 0; i < 5; i++){
System.out.println(Thread.currentThread().getName() + "攻击[" + (i+1) + "]");
//让出处理器时间
Thread.yield();
}
}
System.out.println(Thread.currentThread().getName() + "结束战斗");
}
}
volatile 写了吗?代码怎么写的
深入浅出Java多线程
186065 学习 · 502 问题
相似问题