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

---------------------- android培训java培训、期待与您交流! ----------------------

同过银行调度系统,让我认识到做为一个程序员也是要好好体验生活的。

号码发生器:

import java.util.ArrayList;
import java.util.List;




/**
 * 号码发生器
 * @author 李见黎
 *2012-3-25
 */


public class NumberManager {


private int lastNumber=1;
private List<Integer> queueList=new ArrayList<Integer>();  //面向接口编程

/**
* 多个涉及到了,就互斥,拆箱和装箱
* @return
*/
public synchronized Integer generateNewManager()
{
queueList.add(lastNumber);  //加入队列
return lastNumber++;
}
/**
* 取号的方法
*/

public Integer fetchServiceNumber()
{
Integer numberInteger=null;
if(queueList.size()>0)
numberInteger = queueList.remove(0);
return numberInteger;
}

}

号码管理器:





/**
 * 号码管理器
 * @author 李见黎
 *2012-3-25
 */
public class NumberMachine {
/**
* 创建三个不同的客户
*/
private NumberManager commonManager=new NumberManager(); 





private NumberManager expressManager=new NumberManager();
private NumberManager vipManager=new NumberManager();
/**
* 创建三种不同的方法
*/
public NumberManager getCommonManager()
{
return commonManager;
}
public NumberManager getExpressManager()
{
return expressManager;
}
public NumberManager getVipManager()
{
return vipManager;
}

/**
* 构造方法
*/
private NumberMachine()
{

}
/**
* 写出一个单例
*/
public static NumberMachine getInstance()
{
return instance;
}
private static NumberMachine instance=new NumberMachine();






}


主函数:

import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;


/**
 * 主函数
 * @author 李见黎
 *2012-3-25
 */
public class Main {


/**
* @param 主函数
*/
public static void main(String[] args) {


for(int i=1;i<5;i++)
{
ServiceWin commonWin=new ServiceWin();

commonWin.setWindowID(i);
commonWin.Start();
}

ServiceWin ExpressWin=new ServiceWin();
ExpressWin.setTyper(CustomerTyper.EXPRESS);
ExpressWin.Start();

ServiceWin VIPWin=new ServiceWin();
VIPWin.setTyper(CustomerTyper.VIP);
VIPWin.Start();



Executors.newScheduledThreadPool(1).scheduleAtFixedRate(
new Runnable() {

@Override
public void run() {
Integer numInteger=NumberMachine.getInstance().getCommonManager().generateNewManager();
System.out.println(numInteger+"号普通客户来了");

}
},
0,
Constants.COMMON_CUSTOMER_INTERVAL_TIME, 
TimeUnit.SECONDS);

Executors.newScheduledThreadPool(1).scheduleAtFixedRate(
new Runnable() {

@Override
public void run() {
Integer numInteger=NumberMachine.getInstance().getVipManager().generateNewManager();
System.out.println(numInteger+"号VIP客户来了");
}
},
0,
Constants.COMMON_CUSTOMER_INTERVAL_TIME*6, 
TimeUnit.SECONDS);

Executors.newScheduledThreadPool(1).scheduleAtFixedRate(
new Runnable() {

@Override
public void run() {
Integer numInteger=NumberMachine.getInstance().getVipManager().generateNewManager();
System.out.println(numInteger+"号快速户来了");
}
},
0,
Constants.COMMON_CUSTOMER_INTERVAL_TIME*2, 
TimeUnit.SECONDS);
}


}

---------------------- android培训java培训、期待与您交流! ----------------------详细请查看: http://edu.csdn.net/heima
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值