| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3089 人关注过本帖
标题:多线程模拟卖票案例
取消只看楼主 加入收藏
shelei
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-6-10
结帖率:0
收藏
 问题点数:0 回复次数:0 
多线程模拟卖票案例
某电影院正在上映某大片,共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张票?请各路大神帮帮忙解答下 不胜感激
搜索更多相关主题的帖子: private 电影院 public 多线程 
2016-06-22 11:43
快速回复:多线程模拟卖票案例
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016706 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved