黑马程序员-银行调度系统

----------- androidjava、期待与您交流! ------------

1.  银行调度系统业务需求说明

         (1)银行有六个业务窗口,1-4为普通窗口,5号为快速窗口,6号为VIP窗口,可对应三种类型的客户,


                  即:VIP客户,快速客户,普通客户。
         (2)每个客户业务的处理时间自行设定,并有最大值和最小值。
                  普通窗口只能为普通客户服务;
                  快速窗口优先服务快速客户其次可服务于普通客户;
                  VIP窗口优先服务于VIP客户,其次服务于普通客户。
2. 类
           NumberManager 方法有generateNumber()产生客户号码,fetchNumber()窗口取号
           NumberMachine 创建三个对象,普通客户对象,快速客户对象,VIP对象。
           方法有getCommonManager(),getVipManager(),getExpressManager(),getInstance()静态方法.
           ServiceWindow 方法有start(),commonService(),expressService(),vipService().


3.泛型
          泛型表示存储同一类型的多个对象的集合。
          List<Integer> queueNumber=new ArrayList<Integer>该列表是先进先出。
         queueNumber.add(number); 用来保存产生的新号码,
         queueNumber.remove(0); 每次窗口取走号码,列表就删除它.


4. 线程的应用
           (1). 利用线程池对象创建了一个线程对象并实现Runnable接口中的run方法。
                 public void start(){
                               Executeors.newSingleThreadExecutor().execute(new Runnable(){
                               public void run(){
                                         //创建普通客户对象;
                                        Thread.sleep(time);
                                       }
                                });
                            }


                Executeors线程池类,可创建多个线程对象。
          (2). 多线程的并发应用:
                          for(int i=1;i<5;i++){
                                      ServiceWindow commonWindow=new ServiceWindow();
                                      commonWindow.setWindowId(i);
                                      commonWindow.start();
                                 }
                                 ServiceWindow exepressWindow=new ServiceWindow();
                                 expressWindow.setType(CustcomerType.EXPRESS);
                                 expressWindow.start();
                                 ServiceWindow vipWindow=new ServiceWindow();
                                 vipWindow.setType(CustomerType.VIP);
                                 vipWindow.start();
                                 //创建定时器
                                 Executors.newScheduledThreadPool(1).scheduleAtFiredRate(
                                 new Runnerable(){
                                                 public void run(){
                                                          //得到普通客户号对象
                                                         //输出提示信息
  
                                                    }}, //执行一段代码命令
                                                    0, //过多长时间来第一个人
                                                    1, //以后每隔多长时间来一个人
                                                    TimeUnit.SECOMDS //时间单位
                                                  );




                                Executors.newScheduledThreadPool(1).scheduleAtFiredRate(
                                new Runnerable(){
                                                public void run(){
                                                        //得到快速客户号对象
                                                        //输出提示信息
  
                                                  }}, 
                                                  0,
                                                  6,
                                                  TimeUnit.SECOMDS 
                                                  );


                                Executors.newScheduledThreadPool(1).scheduleAtFiredRate(
                                new Runnerable(){
                                                public void run(){
                                                       //得到VIP客户号对象
                                                       //输出提示信息
  
                                                    }}, 
                                                    0, 
                                                    3, 
                                                    TimeUnit.SECOMDS 

                                                     );


----------- androidjava、期待与您交流! ------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值