| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1398 人关注过本帖
标题:关于线程同步:卖票问题!! 为什么票数溢出!
取消只看楼主 加入收藏
w123012306
Rank: 9Rank: 9Rank: 9
来 自:湖南
等 级:蜘蛛侠
威 望:4
帖 子:307
专家分:1180
注 册:2010-4-22
结帖率:90%
收藏
已结贴  问题点数:20 回复次数:0 
关于线程同步:卖票问题!! 为什么票数溢出!
//问题:
//假设有火车票100张,创建10个线程模拟10个售票点,每个售票点500毫秒买一张票。打印出售票过程,注意使用synchronized确保同一张票只能卖出一次。

class TicketsSell implements Runnable {
         
   
         static int tickets=1;//实例化票数
    int num;

    public TicketsSell(int num) {//  构造方法
        this.num = num;
    }

    public  synchronized void run() {
      //synchronized(this){// 同步该方法
        for (int i=0; i< 100; i++) {
               

           if(tickets<100) {
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("第" + num + "售票点卖出第" + (tickets++) + "张票");
   
            }
            
           }
           
      
    }
}

public class Station {

    public static void main(String[] args) {
        
       Thread wicket1 = new Thread(new TicketsSell(1));
        Thread wicket2 = new Thread(new TicketsSell(2));
        Thread wicket3 = new Thread(new TicketsSell(3));
        Thread wicket4 = new Thread(new TicketsSell(4));
        Thread wicket5 = new Thread(new TicketsSell(5));
        Thread wicket6 = new Thread(new TicketsSell(6));
        Thread wicket7 = new Thread(new TicketsSell(7));
        Thread wicket8 = new Thread(new TicketsSell(8));
        Thread wicket9 = new Thread(new TicketsSell(9));
        Thread wicket10 = new Thread(new TicketsSell(10));
        wicket1.start();
        wicket2.start();
        wicket3.start();
        wicket4.start();
        wicket5.start();
        wicket6.start();
        wicket7.start();
        wicket8.start();
        wicket9.start();
        wicket10.start();
      
    }

}
运行结果:
图片附件: 游客没有浏览图片的权限,请 登录注册
为什么会超出100张! 我找不出错误,知道的说下!

搜索更多相关主题的帖子: 火车票 售票点 
2011-04-15 15:28
快速回复:关于线程同步:卖票问题!! 为什么票数溢出!
数据加载中...
 
   



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

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