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

关于多线程初级的问题。

关于多线程初级的问题。

道临 2016-10-26 20:22:31
package com.imooc.concurrent.base; public class ArmyRunnable implements Runnable { //volatile保证了线程可以正确读取其他线程写入的值 volatile Boolean keepRunning = true; @Override public void run() { while(keepRunning){ for(int i=0 ; i<5 ; i++){ System.out.println(Thread.currentThread().getName()+"进攻对方"+(i+1)+"次"); //缓冲,释放内存,给予士兵休息的时间 Thread.yield(); } } System.out.println(Thread.currentThread().getName()+"结束了攻击"); } }package com.imooc.concurrent.base; public class Stage extends Thread { public void run(){ ArmyRunnable armyTaskOfSuiDynasty = new ArmyRunnable(); ArmyRunnable armyTaskOfRevolt = new ArmyRunnable(); //使用runnable接口创建线程 Thread armyOfsuiDynasty = new Thread(armyTaskOfSuiDynasty,"隋军"); Thread armyOfRevolt = new Thread(armyTaskOfRevolt,"农民起义军"); //启动线程,开始作战 armyOfsuiDynasty.start(); armyOfRevolt.start(); try { //舞台线程休眠,专心观看厮杀 Thread.sleep(50); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } armyTaskOfSuiDynasty.keepRunning = false; armyTaskOfRevolt.keepRunning = false; try { armyOfRevolt.join(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { new Stage().start(); } }是怎么结束的,因为while是一个无限循环,代码是怎么运行到armyTaskOfSuiDynasty.keepRunning = false; armyTaskOfRevolt.keepRunning = false;这里的,可能我表达的意思不清楚,就是说这个while循环是怎么停止的
查看完整描述

3 回答

已采纳
?
慕粉4075985

TA贡献104条经验 获得超33个赞

 armyTaskOfSuiDynasty.keepRunning = false;

        armyTaskOfRevolt.keepRunning = false;


查看完整回答
反对 回复 2016-10-26
  • 道临
    道临
    你看,先运行到两个start(),开始执行两个线程,这时keepRunning还是true,按照顺序它是怎么运行到keepRunning==false的
  • 道临
    道临
    keepRunning==false是执行完线程才开始执行的么
  • 慕粉4075985
    慕粉4075985
    线程就是同时进行,armyOfsuiDynasty.start();start后ArmyRunnable线程开始攻击,同时stage睡了50毫秒,睡醒了ArmyRunnable还在打,打的同时stage执行armyTaskOfSuiDynasty.keepRunning = false;
点击展开后面1
?
car

TA贡献184条经验 获得超33个赞

多线程的执行,不影响后面代码的执行

查看完整回答
反对 回复 2016-10-27
?
慕粉4075985

TA贡献104条经验 获得超33个赞

为什么是无限循环

查看完整回答
反对 回复 2016-10-26
  • 3 回答
  • 0 关注
  • 1781 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信