编写一个Java 多线程程序,完成三个售票窗口同时出售20张票(如下图所示);

编写一个Java 多线程程序,完成三个售票窗口同时出售20张票(如下图所示);
程序分析:(1)票数要使用同一个静态值;
(2)为保证不会出现卖出同一个票数,要java多线程同步锁。
设计思路:
(1)创建一个站台类Station,继承Thread,重写run方法,在run方法里面执行售票操作!售票要使用同步锁:即有一个站台卖这张票时,其他站台要等这张票卖完!
(2)创建主方法调用类
`public class Station extends Thread{
static int ticket=20;
static Object ob=“aa”;
Station(String name){
super(name);
}
public void run(){
super.run();
while(ticket>=0){
synchronized (ob){
if(ticket>0){
System.out.println(Thread.currentThread().getName()+“卖的第”+ticket+“张票”);
ticket–;
}
else {
System.out.println(“票卖完了”);
ticket–;
}
}

		try{
		Thread.sleep(1000);
		}
		catch(InterruptedException e){
		e.printStackTrace();
		}
	}
}
public static void main(String args[]){
	Station station1=new Station("窗口1:");		
	Station station2=new Station("窗口2:");		
	Station station3=new Station("窗口3:");		
	station1.start();
	station2.start();
	station3.start();
}

}
`编写一个Java 多线程程序,完成三个售票窗口同时出售20张票(如下图所示);_第1张图片

你可能感兴趣的:(编写一个Java 多线程程序,完成三个售票窗口同时出售20张票(如下图所示);)