------- android培训、java培训、期待与您交流! ----------
- 首先分析这个系统的需求
- :
- 这里面有哪些对象呢?
- 分析对象前先分析有哪些对象:窗口、客户。
- 但是这两个对象是无法调度的,不同客户怎么分配窗口?客户之间先后顺序?
- 这里少了一个隐含的关键对象:取号机,就是银行打印号码的那种。
- 客户按说也是一个对象,但是,这里客户只是由多线程异步产生的号码资源而已。
- 这样两个主要对象: 窗口、取号机分析出来了。
4.流程分析
- 那么银行业务是一个什么流程?我们想象一下:
- 1、窗口类,
- 2、客户
- 客户进门,去取号机取号,取到号码,就等待窗口叫号。
- 客户分三种:普通、快速、VIP。
- 取号机生成号,窗口取出号,服务结束。这里看出客户属于被操作的资源。
- 3、取号机类
- 4,、号码管理器类
- 5、MainClass
- 包含main()方法,开启这个程序。
- 开启过程:
- 建立三种窗口,调用窗口的开启方法,窗口开始运营。
- 异步生成多种客户,每生成有一个就去取号机里取一个号。
-
package cn.itcast.bank;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
public class MainClass
{
/**
* @param args
*/
public static void main(String[] args)
{
for (int i = 1; i <5; i++)
{
//ServiceWindow commonWindow = null;
ServiceWindow Window =new ServiceWindow();
Window.setWindowId(i);
Window.start();
}
ServiceWindow expressWindow = new ServiceWindow();
expressWindow.setType(CustomerType.EXPRESS);
expressWindow.start();
ServiceWindow vipWindow = new ServiceWindow();
vipWindow.setType(CustomerType.VIP);
vipWindow.start();
//普通客户拿号
Executors.newScheduledThreadPool(1).scheduleAtFixedRate //
(
new Runnable(){
@Override
public void run()
{
// TODO Auto-generated method stub
Integer serviceNumber = NumberMachine.getInstance().getCommonManager().generateNewManager();
System.out.println("第"+serviceNumber+"号普通客户正在等待服务!");
}
},
0,
Constans.COMMON_CUSTOMER_INTERVAL_TIME, //
TimeUnit.SECONDS //
);
Executors.newScheduledThreadPool(1).scheduleAtFixedRate
(
new Runnable()
{
@Override
public void run()
{
// TODO Auto-generated method stub
Integer serviceNumber = NumberMachine.getInstance().getCommonManager().generateNewManager();
System.out.println("第"+serviceNumber+"号快速客户正在等待服务!");
}
},
0,
Constans.COMMON_CUSTOMER_INTERVAL_TIME*2,
TimeUnit.SECONDS
);
Executors.newScheduledThreadPool(1).scheduleAtFixedRate
(
new Runnable(){
@Override
public void run()
{
// TODO Auto-generated method stub
Integer serviceNumber = NumberMachine.getInstance().getCommonManager().generateNewManager();
System.out.println("第" + serviceNumber + "号VIP客户正在等待服务!");
}
},
0,
Constans.COMMON_CUSTOMER_INTERVAL_TIME*6,
TimeUnit.SECONDS
);
}
}
分享到:
相关推荐
模拟实现银行业务调度系统逻辑,具体需求如下: 1.银行内有6个业务窗口,1 - 4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口。 2.有三种对应类型的客户:VIP客户,普通客户,快速客户(办理如交水电费、...
课程设计-磁盘调度算法.docx 课程设计-磁盘调度算法.docx 课程设计-磁盘调度算法.docx 课程设计-磁盘调度算法.docx 课程设计-磁盘调度算法.docx 课程设计-磁盘调度算法.docx 课程设计-磁盘调度算法.docx 课程...
-车辆智能调度系统解决方案.pdf-车辆智能调度系统解决方案.pdf-车辆智能调度系统解决方案.pdf-车辆智能调度系统解决方案.pdf-车辆智能调度系统解决方案.pdf-车辆智能调度系统解决方案.pdf-车辆智能调度系统解决方案....
-车辆智能调度系统解决方案.docx-车辆智能调度系统解决方案.docx-车辆智能调度系统解决方案.docx-车辆智能调度系统解决方案.docx-车辆智能调度系统解决方案.docx-车辆智能调度系统解决方案.docx-车辆智能调度系统...
02-7K月薪面试题破解之二_银行业务调度系统视频教程 02-7K月薪面试题破解之二_银行业务调度系统视频教程 02-7K月薪面试题破解之二_银行业务调度系统视频教程 02-7K月薪面试题破解之二_银行业务调度系统视频教程 02-...
校车调度-校车调度系统-校车调度系统源码-校车调度管理系统-校车调度管理系统java代码-校车调度系统设计与实现-基于springboot的校车调度系统-基于Web的校车调度系统设计与实现-校车调度网站-校车调度网站代码-校车...
校车调度-校车调度系统-校车调度系统源码-校车调度管理系统-校车调度管理系统java代码-校车调度系统设计与实现-基于springboot的校车调度系统-基于Web的校车调度系统设计与实现-校车调度网站-校车调度网站代码-校车...
1.5.3 集群调度通信系统. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-7 1.5.2 无绳电话系统. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...