一、案例需求
某个电影院上映了史诗级大片《回村的诱惑》,共有100张票,卖票窗口总共有三个。请设计一个程序模拟卖票的过程!
二、步骤分析
1、定义一个卖票的线程类实现Runnable接口,并且声明一个成员变量:private int ticket=100;
2、在run方法中,判断该票数是否大于0,就卖票,打印输出剩余票数和窗口;
3、一个线程执行完之后,票数减一;
4、如果票数<=0则停止售票;
5、创建一个测试类,在main方法中创建卖票类的对象;
6、创建三个Thread类,并将卖票类的对象传入。分别调用start()方法。
三、代码实现
SellTicket类:
public class SellTicet implements Runnable{
private int ticket = 100;
@Override
public void run() {
while (true){
if (ticket<=0){
break;
}else{
ticket--;
System.out.println(Thread.currentThread().getName() + "出票成功,剩余:"+ticket+" 张票");
}
}
}
}
测试类:
public class DemoTest {
public static void main(String[] args) {
SellTicet sellTicet = new SellTicet();
Thread t1 = new Thread(sellTicet);
Thread t2 = new Thread(sellTicet);
Thread t3 = new Thread(sellTicet);
t1.setName("窗口一");
t2.setName("窗口二");
t3.setName(&#