黑马程序员技术交流社区

标题: 银行管理系统的理解问题代理类为什么加锁 [打印本页]

作者: 张业婷    时间: 2014-10-5 12:42
标题: 银行管理系统的理解问题代理类为什么加锁

取号器不是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;
        }
}






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2