要求:
实现多窗口售票机制
public class Ticket {
/**
* 售票员卖票问题
*/
public static void main(String[] args) {
//实例化该窗口类的对象
TicketWindow tw = new TicketWindow();
//将该对象放入三个线程
Thread t1 = new Thread(tw);
Thread t2 = new Thread(tw);
Thread t3 = new Thread(tw);
//启动三个线程
t1.start();
t2.start();
t3.start();
}
}
/**
* 售票窗口
*
*/
class TicketWindow implements Runnable{
//总票数
private int num = 2000;
public void run(){
while(true){
//同步锁,this代表该类的对象
synchronized(this){
if(num > 0){
try {
//休眠线程1秒,必须捕获异常
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()
+"正在卖出第"+num+"张票");
num--;
}else {
break;
}
}
}
}
}