黑马程序员技术交流社区

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

作者: qxc1281    时间: 2015-6-30 09:34
标题: 线程问题
  1. class Test extends Thread{

  2.         private boolean flag ;
  3.        
  4.         public void setStar(){
  5.                 flag = true;
  6.         }
  7.        
  8.         public void setEnd(){
  9.                 flag = false;
  10.         }
  11.        
  12.         public void run() {
  13.                 int num = 0;
  14.                 while(flag){
  15.                         System.out.println(Thread.currentThread().getName()+"  "+num+++"  "+flag);
  16.                 }
  17.         }
  18. }

  19. public class ThreadDemo {
  20.         public static void main(String[] args) {
  21.                 Test t = new Test();
  22.                 t.setStar();
  23.                 t.start();
  24.                 for(int i =0;i<=100;i++){
  25.                         System.out.println(Thread.currentThread().getName()+"  "+i++);
  26.                         if(i==60){
  27.                        
  28.                                 t.setEnd();
  29.                         }
  30.                 }
  31.         }
  32. }
复制代码
为什么停不下来

作者: dillinger    时间: 2015-6-30 17:32
你主函数for循环条件里面加了i+了一次,在循环体俩面又加了一次,等到判断的时候i是基数,不可能等于60,所以停不下来,你改成基数或者取消循环体里面的i++就行了
作者: qxc1281    时间: 2015-6-30 17:39
dillinger 发表于 2015-6-30 17:32
你主函数for循环条件里面加了i+了一次,在循环体俩面又加了一次,等到判断的时候i是基数,不可能等于60,所 ...

太感谢了
作者: dillinger    时间: 2015-6-30 17:40
qxc1281 发表于 2015-6-30 17:39
太感谢了

客气客气~~
作者: 孙建强Jason    时间: 2015-6-30 22:13
还没有学到这里,我是来顶贴的




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