为了账号安全,请及时绑定邮箱和手机立即绑定

线程的停止

关于军队这一块没有设置他的具体结束时间,怎么能确定这两个线程会结束呢?什么时候结束呢,KeepRunning这个值什么时候会被调用呢,DeBug不出来啊,求解

正在回答

2 回答

在舞台这个线程里面将两个军队线程对象的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;


0 回复 有任何疑惑可以回复我~
#1

Z_Ser 提问者

非常感谢!3q
2016-08-15 回复 有任何疑惑可以回复我~

KeepRunning初始值为true,循环停止的条件不是if(count==100)KeepRunning=false;吗?

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
深入浅出Java多线程
  • 参与学习       186088    人
  • 解答问题       464    个

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

进入课程

线程的停止

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信