A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小脚印 中级黑马   /  2014-3-11 22:47  /  841 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在看毕老师视频时有点困惑  老师说在mian方法中 调用changeFlag()方法会避免线程t1或t2线程出现死循环,但如果一开始就进入t1线程有没有可能就一直循环了~~谢谢各位!

  1.         class StopThread implements Runnable{
  2.                 private boolean flag=true;
  3.                 public void run(){
  4.                         while(flag){
  5.                         System.out.println(Thread.currentThread().getName()+"----run");
  6.                         }
  7.                 }
  8.                 public void changeFlag()
  9.                 {
  10.                         flag=false;
  11.                 }
  12.         }

  13. public class StopThreadDemo {

  14.         /**
  15.          * @param args
  16.          */
  17.         public static void main(String[] args) {
  18.                 // TODO Auto-generated method stub
  19.                 int num=0;
  20.                 StopThread t=new StopThread();
  21.                 Thread t1=new Thread(t);
  22.                 Thread t2=new Thread(t);
  23.                     t1.start();
  24.                      t2.start();
  25.                      while(true){
  26.                              if(num++==60){
  27.                              t.changeFlag();
  28.                              break;
  29.                      }
  30.                              System.out.println(Thread.currentThread().getName()+"  "+num);
  31.                      }
  32.         }
  33. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马