public class Tiket{
private int tiketNumber;
public int getTiketNumber() {
return tiketNumber;
}
public void setTiketNumber(int tiketNumber) {
this.tiketNumber = tiketNumber;
}
public Tiket(int tiketNumber) {
this.tiketNumber = tiketNumber;
}
public static void main (String[] args){
Tiket tiket =new Tiket(100);
for (int i = 0; i < 5; i++) {
TicketWindow tw = new TicketWindow(tiket);
tw.setName("售票窗口"+i);
tw.start();
}
}
}
class TicketWindow extends Thread{
public Tiket tiket;
public TicketWindow(Tiket tiket) {
this.tiket = tiket;
}
@Override
public void run() {
while (true){
if(tiket.getTiketNumber()>0){
System.out.println(Thread.currentThread().getName()+"正在准备出票,剩余票数为:"+tiket.getTiketNumber());
tiket.setTiketNumber(tiket.getTiketNumber()-1);
System.out.println(Thread.currentThread().getName()+"卖出一张票,剩余票数为:"+tiket.getTiketNumber());
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}else{
System.out.println(Thread.currentThread().getName()+"余票不足!请领选时段或电影!");
break;
}
}
}
}
【面试题】 模拟多线程售票系统
猜你喜欢
转载自blog.csdn.net/qq_34433210/article/details/85260410
今日推荐
周排行