黑马程序员技术交流社区

标题: 谁帮忙解释一下 [打印本页]

作者: 13699266500    时间: 2015-4-22 10:53
标题: 谁帮忙解释一下
public class Q implements Runnable  {
         int i=100;
        public void run(){
                while(true){
                        if(i>0){
                        System.out.println(i);
                        i--;
                        }
                }
               
        }
}

public class W {
        public static void main(String[] args) {
                Q q=new Q();
                new Thread(q).start();
                new Thread(q).start();
        }

}
输出后每次会打印两个100的数值是怎么回事?
作者: 关山明月    时间: 2015-4-22 12:53
这是线程没同步的原因了
System.out.println(i); i--; 你将这两句改成 System.out.println(i--);  试下
作者: 13699266500    时间: 2015-4-22 13:07
关山明月 发表于 2015-4-22 12:53
这是线程没同步的原因了
System.out.println(i); i--; 你将这两句改成 System.out.println(i--);  试下 ...

谢谢!!!!!!




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