黑马程序员_7K面试题:银行调度系统

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ---------------------- 

 

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 

                                                     );

 

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ---------------------- 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值