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

本文介绍了一个使用Java多线程实现的售票系统,通过三个售票窗口同步出售20张票,确保了票数的准确性。系统利用静态变量和同步锁来避免并发问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编写一个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();
}

}
`在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值