Z_Ser
2016-05-05 22:14
关于军队这一块没有设置他的具体结束时间,怎么能确定这两个线程会结束呢?什么时候结束呢,KeepRunning这个值什么时候会被调用呢,DeBug不出来啊,求解
在舞台这个线程里面将两个军队线程对象的KeepRunning属性设置为false,从而结束了两个军队线程。
ArmyRunnable armyA = new ArmyRunnable();
ArmyRunnable armyB = new ArmyRunnable();
Thread threadArmyA=new Thread(armyA,"armyA");
Thread threadArmyB=new Thread(armyB,"armyB");
threadArmyA.start();
threadArmyB.start();
try {
Thread.sleep(50);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
armyA.keepRunning=false; //结束了军队A的线程
armyB.keepRunning=false; //结束了军队B的线程在军队线程里面,keepRunning需用volatile修饰,表示它可以被不同线程访问和修改。
即:
volatile boolean keepRunning=true;
KeepRunning初始值为true,循环停止的条件不是if(count==100)KeepRunning=false;吗?
深入浅出Java多线程
186065 学习 · 502 问题
相似问题