黑马程序员技术交流社区

标题: 线程问题 [打印本页]

作者: 小脚印    时间: 2014-3-11 22:47
标题: 线程问题
在看毕老师视频时有点困惑  老师说在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. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2