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

关于多进程问题

关于多进程问题

qq_逆时针_1 2017-05-07 22:00:04
启动 sj1  nm1 两个进程后,什么时候会修改keep值为false,是随机的吗public class JunDui implements Runnable{ //volatile保证了线程可以正确的访问其他线程写入的值  volatile boolean keep = true; @Override public void run() {  // TODO Auto-generated method stub  while (keep ) {   for (int i = 0; i < 5; i++) {    System.out.println(Thread.currentThread().getName()      +"发动了"+(i+1)+"次攻击");    //让出了处理器时间    Thread.yield();   }   System.out.println(Thread.currentThread().getName()     +"结束了攻击");  } }}public class Stage extends Thread {//舞台 @Override public void run() {  // TODO Auto-generated method stub  JunDui sj = new JunDui();  JunDui nm = new JunDui();    Thread sj1 = new Thread(sj,"隋军");  Thread nm1 = new Thread(nm,"农民起义军");    //启动进程  sj1.start();  nm1.start();    //舞台进程休眠  try {   Thread.sleep(50);  } catch (InterruptedException e) {   // TODO Auto-generated catch block   e.printStackTrace();  }    sj.keep = false;  nm.keep = false;    try {   sj1.join();  } catch (InterruptedException e) {   // TODO Auto-generated catch block   e.printStackTrace();  } }
查看完整描述

1 回答

?
botao555

TA贡献48条经验 获得超46个赞

keep是用来结束线程的标志量,你可以在你需要结束线程的时候讲keep显式置为false

查看完整回答
反对 回复 2017-05-11
  • 1 回答
  • 0 关注
  • 1395 浏览

添加回答

举报

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