A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

昨晚做的模拟一个多线程方法同一个方法,出现的多线程访问的安全问题,每次运行的结果都无法确定。
这个应该可以说明多线程访问的问题了吧。想到12306他们做的系统,瞬间的访问量那么大,真的是大牛呀。
希望我们一起学习,共同进步。
public class Test8{
        public static void main(String[] args) {
                TicketSealCenter center = new TicketSealCenter();
                Thread t1 = new SealWindow(center);
                Thread t2 = new SealWindow(center);
                Thread t3 = new SealWindow(center);
                t1.start();
                t2.start();
                t3.start();
        }
       
}
class SealWindow  extends Thread{
        private TicketSealCenter center;
        public SealWindow(TicketSealCenter center){
                this.center = center;
        }
        public void run(){
                center.getTicket();
        }
}

class TicketSealCenter{
        int count = 2;
        public int getTicket(){
                if(count == 0){
                        System.out.println("没有票了");
                        return 0;
                }else{
                        System.out.println("买到啦");
                        return count--;
                }
               
               
        }
       
}

评分

参与人数 1技术分 +1 收起 理由
sk0806 + 1 赞一个!

查看全部评分

10 个回复

倒序浏览
没什么不用锁,,,
回复 使用道具 举报
操作资源没同步
回复 使用道具 举报
我们还没学到多线程呢,不过看起来还不错的样子
回复 使用道具 举报
当多个线程同时执行到 count-- 的时候, 就会出现 -1, -2 , 或者 没有票之后是买到了
回复 使用道具 举报
感觉还是要加同步吧,不然后面会出现负数的票的额。。。。
回复 使用道具 举报
去实现Runnable接口吧,骚年!
回复 使用道具 举报
你的方法太容易出问题了。。。重看多线程安全吧
回复 使用道具 举报
我觉得12306的访问压力没有双11的天猫和京东大,双11购物毫无压力啊:lol
回复 使用道具 举报
大家看清题目 人家题目就是让你模拟一个多线程出现的安全问题  同步了还怎么模拟问题啊  兄弟们~
回复 使用道具 举报
楼主加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马