黑马程序员技术交流社区

标题: 问一个关于多线程的问题 [打印本页]

作者: 我有上将潘凤    时间: 2016-5-17 22:31
标题: 问一个关于多线程的问题
class Example02 {
public static void main(String[] args) {
  TicketWindow r = new TicketWindow();
  new Thread(r,"窗口1").start();
  new Thread(r,"窗口2").start();
  new Thread(r,"窗口3").start();
  new Thread(r,"窗口4").start();
  while (r.count>=100) {
   System.out.println(r.count);
  }
}
}
class TicketWindow implements Runnable {
int number = 100;  
int count = 0;
public void run() {
  Thread th = Thread.currentThread();
  String name = th.getName();
  while (number>0) {   
   try {
    Thread.sleep(1000);
   }
   catch (Exception e) {
    e.printStackTrace();
   }
   //System.out.println(name+"正在发售第"+(number--)+"张票。");
   System.out.println(name+"正在发售第"+(number)+"张票。");
   number--;
   count++;
  }
}
}
  为什么:1.System.out.println(name+"正在发售第"+(number--)+"张票。");
   2.System.out.println(name+"正在发售第"+(number)+"张票。");
     number--;
  数出的结果不一样?第一种是每个数字输出一次,第二种输出看不懂。
  
  为什么:主方法里面的while循环里面的语句不会输出,count++后应该大于100了啊。


作者: zhangjinbu    时间: 2016-5-17 22:38
给你点个赞!!!!!!!!!!
作者: 何亚辉    时间: 2016-5-17 23:25
问得太好了




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