关于军队这一块没有设置他的具体结束时间,怎么能确定这两个线程会结束呢?什么时候结束呢,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;吗?