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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


取号器不是new了三个号码代理类吗?应该线程互不相干,不会产出线程安全问题吧?
public class NumberMachine {
        private NumberManager commonManager=new NumberManager();
        private NumberManager expressManager=new NumberManager();
        private NumberManager vipManager=new NumberManager();
}

public class NumberManager {
        private int lastNumber=1;
        private List<Integer> queueNumber=new ArrayList<Integer>();
        //客户需要取号排队(前端用)并显示当前都有那第几号客户在排队等待!
        public synchronized Integer generateNewManager(){
                queueNumber.add(lastNumber);
                return lastNumber++;
        }
        //业务员需要给排队的人办理业务(服务端用)
        public synchronized Integer fetchServiceNumber(){
                Integer number=null;
                if(queueNumber.size()>0){
                        number=queueNumber.remove(0);
                }
                return number;
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马