创建3个售票窗口同时开始销售10张票。
源代码:
public class One {
public static void main(String[] args) {
Ticketoffice ticketoffice=new Ticketoffice(new Object(),10);
new Thread(ticketoffice,"售票窗口1").start();
new Thread(ticketoffice,"售票窗口2").start();
new Thread(ticketoffice,"售票窗口3").start();
}
}
class Ticketoffice implements Runnable{
private Object object;
private int ticketnum;
public Ticketoffice(Object object,int ticketnum) {
this.object=object;
this.ticketnum=ticketnum;
}
public void run() {
while(ticketnum>0) {
synchronized(object) {
if(ticketnum<=0) {
System.out.println(Thread.currentThread().getName()+"没有票了");
}
else {
System.out.println(Thread.currentThread().getName()+"卖出了一张票,剩余"+--ticketnum+"张票");
try {
Thread.sleep(1000L);
}
catch(InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
}
运行结果截图: