aaa
package Bank;
//import java.util.List;
/**
* 6个窗口 1-4为普通窗口(一般业务),5号为快速窗口(水电费类的),6号为VIP窗口
* 随机生成客户 VIP,普通,快速的速度比为: 1:6:3
* 手续办理时间在最大值和最小值之间。
* 各类客户在对应窗口办理,5号和6号窗口没人时办理普通业务
* 生成客户时间和等待办理业务时间自己定,但是需要可以设置
*
*/
class Bank
{
// List<Custom> l1;//普通客户区
// List<Custom> l2;//快速客户区
// List<Custom> l3;//VIP客户区
int l1 = 0;
int l2 = 0;
int l3 = 0;
/*产生客户时间*/
static int time = 10;
// public static Bank b = new Bank();
/*设置时间*/
static void settime(int time1)
{
time = time1;
}
public static void main(String [] args)
{
settime(10);
// new Thread(b).start();
Window w1 = new Window("nommal","common",time);
// Window w2 = new Window("nommal","common",time);
// Window w3 = new Window("nommal","common",time);
// Window w4 = new Window("nommal","common",time);
Window w5 = new Window("quick","quick",time);
Window w6 = new Window("VIP","VIP",time);
new Thread(w1).start();
new Thread(w1).start();
new Thread(w1).start();
new Thread(w1).start();
new Thread(w5).start();
new Thread(w6).start();
}
/*
public void run()
{
// 产生客户
while(true)
{
try
{
Thread.sleep(time*1000);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
l3 = l3 + 1;
l2 = l2 + 3;
l1 = l1 + 6;
// l1.add(new Custom("common",time/6));
// l2.add(new Custom("quick",time/3));
// l3.add(new Custom("VIP",time));
System.out.println("11111111111111........");
}
}
*/
}
package Bank;
import java.util.Random;
/*定义客户类*/
class Custom
{
/*定义是何种客户*/
String name;
/*该客户需要的时间*/
int time=0;
/*时间范围*/
int timerange=0;
Custom(String name,int timeranger)
{
this.setname(name);
this.settimeranger(timeranger);
gettime();
}
void settimeranger(int timeranger)
{
this.timerange = timeranger;
}
void setname(String name)
{
this.name = name;
}
void gettime()
{
this.time = new Random().nextInt(timerange);
}
}
package Bank;
import java.util.Random;
class Window implements Runnable
{
/*窗口属性*/
String name;
/*窗口状态,true为空闲,false为忙碌*/
boolean state = true;
/*对应的客户信息*/
Custom p1;
int time;
int l1 = 1;
int l2 = 1;
int l3 = 1;
Window(String name,String name0,int time)
{
this.name = name;
this.state = true;
p1 = new Custom(name0,time);
}
public void run()
{
while(true)
{ if(new Random().nextInt(3) != 2)
{
l3 = l3 + 1;
l2 = l2 + 3;
l1 = l1 + 6;
}
if(!state)
{
try
{
Thread.sleep(p1.time*1000);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
state = true;
}
else
{
if(name.equals("nommal"))
{
if(l1>0)
{
System.out.println("common: "+p1.name+" "+p1.time + " leave people: " + l1);
// Bank.b.l1.remove(0);
state = false;
}
}
else if(name.equals("VIP") )
{
if(l3>0)
{
System.out.println("VIP: "+p1.name+" "+p1.time + " leave people: " + l3);
// Bank.b.l3.remove(0);
l3--;
state = false;
}
// else if(!Bank.b.l1.isEmpty())
else if(l1>0)
{
System.out.println("common: "+p1.name+" "+p1.time + " leave people: " + l1);
// Bank.b.l1.remove(0);
l1--;
state = false;
}
}
else if(name.equals("quick"))
{
// if(!Bank.b.l2.isEmpty())
if(l2>0)
{
System.out.println("quick: "+p1.name+" "+p1.time + " leave people: " + l2);
// Bank.b.l2.remove(0);
l2 -- ;
state = false;
}
// else if(!Bank.b.l1.isEmpty())
else if(l1>0)
{
System.out.println("common: "+p1.name+" "+p1.time + " leave people: " + l1);
// Bank.b.l1.remove(0);
l1--;
state = false;
}
}
}
}
}
/*
public void create()
{
while(true)
{
try
{
Thread.sleep(p1.time*1000);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
l3 = l3 + 1;
l2 = l2 + 3;
l1 = l1 + 6;
// l1.add(new Custom("common",time/6));
// l2.add(new Custom("quick",time/3));
// l3.add(new Custom("VIP",time));
System.out.println("11111111111111........");
}
}
*/
}