首页 新闻 会员 周边

多线程模拟卖票案例

0
悬赏园豆:20 [待解决问题]

某电影院正在上映某大片,共100张票,而他又3个售票窗口售票,请设计一个程序模拟该电影院售票。

class SellTicket implements runnable {
        private int tickets = 100;
        public void run() {
 while (true) {
       if(tickets>0){
                 system.out.println(Thread.currentThread().getName()+"正在出售第"+(tickets--)+"张票");
                }
            }
       }  
}

public class SellTicketDemo { 

        SellTicket st = new SellTicket();

        Thread t1 = new Thread(st,"窗口1");

        Thread t2 = new Thread(st,"窗口2");

        Thread t3 = new Thread(st,"窗口3");

         t1.start();
         t2.start();
         t3.start();


}

输出结果:
窗口1正在出售第99张票
窗口1正在出售第98张票
窗口1正在出售第97张票
窗口1正在出售第96张票
窗口1正在出售第95张票
窗口1正在出售第94张票
窗口1正在出售第93张票
窗口1正在出售第92张票
窗口1正在出售第91张票
窗口2正在出售第100张票
窗口1正在出售第89张票
     .
     .
     .
     .

我的问题是为什么会是第99张票先卖出去而不是第一百张票?代码里tickets明明是从100开始执行的啊,那不是应该先卖第100张票?请各路大神帮帮忙解答下 不胜感激

Shelei的主页 Shelei | 初学一级 | 园豆:169
提问于:2016-06-22 15:12
< >
分享
所有回答(1)
0

ticket-- 当然是99了

你问个问题,连结果输出都写错了,看了半天...

爱编程的大叔 | 园豆:30839 (高人七级) | 2016-06-22 16:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册