package com.mth.bank;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
/*
* 测试类
*
* */
public class MainClass {
public static void main(String[] args) {
// 1-4号 普通窗口
for (int i = 1; i < 2; i++) {
ServiceWindow comWin = new ServiceWindow();
comWin.setWindowId(i);
comWin.start();
}
// vip窗口
ServiceWindow vipWin = new ServiceWindow();
vipWin.setWindowId(6);
vipWin.setType(CustomerType.VIP);
vipWin.start();
// 快速窗口
ServiceWindow expressWin = new ServiceWindow();
expressWin.setWindowId(5);
expressWin.setType(CustomerType.EXPRESS);
expressWin.start();
// 定时来客户 (变相理解为叫号机产生了一个号码) 每隔多少时间来一个客户
// 参数0的意思是马上来一个人
// 参数Constants.COMMON_CUSTOMER_INTERVAL_TIME是一秒来一个普通用户
ScheduledExecutorService ser = Executors.newScheduledThreadPool(1);
ScheduledExecutorService ser1 = Executors.newScheduledThreadPool(1);
ScheduledExecutorService ser2 = Executors.newScheduledThreadPool(1);
ser.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
// 叫号
Integer num = NumberMachine.getInstance().getCommManager()
.generateNewManager();
System.out.println("第" + num + "号普通客户正在等待服务!===========");
}
}, 0, Constants.COMMON_CUSTOMER_INTERVAL_TIME, TimeUnit.SECONDS);
// 快速客户 2秒来一个
ser1.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
Integer num = NumberMachine.getInstance().getExpressManager()
.generateNewManager();
System.out.println("第" + num + "号快速客户正在等待服务!===========");
}
}, 0, Constants.COMMON_CUSTOMER_INTERVAL_TIME * 3, TimeUnit.SECONDS);
// VIP客户 6秒来一个
ser2.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
Integer num = NumberMachine.getInstance().getVipManager()
.generateNewManager();
System.out.println("第" + num + "号VIP客户正在等待服务!===========");
}
}, 0, Constants.COMMON_CUSTOMER_INTERVAL_TIME * 6, TimeUnit.SECONDS);
}
}
测试类MainClass
最新推荐文章于 2023-09-08 15:41:45 发布