问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

JAVA 。。5个窗口卖100张火车票 用多线程。

发布网友 发布时间:2022-05-31 17:20

我来回答

3个回答

热心网友 时间:2023-10-20 18:51

呵呵,帮你写一个吧,每个售票窗口在0~5秒钟内卖出一张票

package thread.;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.concurrent.TimeUnit;

/**
* 用list作为容器
* 这里没有生产者,因为票就那么多。
* Solder是消费者
* @version SoldTicket.java v. 1.0.0 2010-11-10
* @author Andy
*/
public class SoldTicket {
public static List<String> list = new ArrayList<String>();
public static int counter = 1;
public static Random random = new Random();
public static void main(String[]args){
initTickets();
SoldTicket st = new SoldTicket();
for(int i = 1; i<= 5;i++){
st.new Solder().start();
}
}
private synchronized String getOneTicket(){
if(list.size()<=0) return null;
return list.remove(0);

}
private static void initTickets(){
for(int i = 1 ;i <= 100 ; i++ ){
list.add("第 "+i+" 张票");
}
}
/**
* 售票的类,专管售票
* @version SoldTicket.java v. 1.0.0 2010-11-10
* @author Andy
* copyright (c) 2010 北京叁加伍网络科技有限公司 http://www.3jia5.com
*/
class Solder extends Thread{
public final int id = counter++;
public Solder(){
this.setName("售票窗口"+id);
}
@Override
public void run() {
while(!this.isInterrupted()){
String ticket = getOneTicket();
if(ticket==null){
System.out.println(this.getName()+":票已售空,明天请早");
break;
}
System.out.println(this.getName()+" 卖出了 "+ticket);
try {
TimeUnit.MILLISECONDS.sleep(random.nextInt(5000));
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}

}

参考资料:手打

热心网友 时间:2023-10-20 18:51

给你个思路吧

public class Window extends Thread{

属性列表:
//窗口号
//窗口名
//窗口服务员

行为列表
public synchronized void 卖票(int 票数){

for(int i:票数){

run();

}
}

@override
public void run(){

打印信息("第"+窗口号+“号窗口卖出了一张票");
}

}

热心网友 时间:2023-10-20 18:52

能具体点不
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
深圳去香港走那个海关最方便快捷啊? 深圳过香港哪个口岸最方便 深圳哪个口岸过关最快 横死年轻人能烧纸吗 一个两位数的近似数是0.3,这个小数最大是,2.9,对吗? 用0、2、3、6任意摆成一个三位数, ...1、6、0 摆成一个三位数,末尾有0的可能性是多少?中间有0的可能性是... ...1,8任意取摆成一个三位数,末尾有0的可能性是多少?中间有0的可能性是... ...卡片中任意选出3张摆成一个三位数。摆出末尾有0的三位数可能性是多少... ...三张摆成一个三位数,末尾有0的数的可能性是多少?中间有0的_百度知 ... JAVA多线程问题,两个结果差别到底是因为什么,(实现3个售票窗口的同步售票。票数5张) 天冷了,毛衫搭配衬衣(毛衫外,衬衣里),外头可以再穿什么啊? 霸王鸡条谁家卖啊? 汉堡王霸王鸡条的热量 霸王鸡盒都有什么 java火车卖票多线程程序,想统计出窗口1和窗口2各卖出多少票,结果不正确,为什么? 23×(5/23-5/32)×32简便计算 qq号码列表框 考会计证需要具备什么什么条件,会计需要用哪些软件呢? 考金蝶会计综合能力考试证书有什么作用? 23×((32+38)÷14)简便运算? 梦到很多小猫有的被别人杀了有一只被我救了 列竖式计算(发图片): 32×23= 金蝶会计岗位综合能力证书在哪报名 23/32×32=?简便计算,谢谢 抖音团购的鼋头渚门票要怎么预约 JAVA 多线程 4个售票员卖1000张票 为什么我的是第一张票被1234售票员卖了然后再卖第二章张?请高手解答 23x32算式和验算怎么写? java 多线程模拟火车售票系统问题 我今年是安徽高考学生,请问能用晨光可擦笔答题吗 大神们 JAVA 用继承写四个窗口卖票多线程序。哪出错了? 用java设计 两个线程同时卖100张火车票 金蝶会计综合能力考试证书和普通的职称证书有什么不一样? 金蝶证书的考试有几部分? Win8中IE10浏览器flash打不开怎么办 谁会会计金蝶软件,要考试了怎么弄啊,求帮忙-…… 考会计从业资格证中,求:金蝶软件!!! 上海失业金是三个月一起发吗 糟糕,这根霸王鸡条拾不起来 打一成语 qq号列表呢? 糟糕,这根霸王鸡条拾不起来打一成语 上海失业保险金可以领取多少个月 如何清除QQ登陆号码列表 QQ号列表如何恢复 糟糕,这条霸王鸡条抬不起来 打一成语 三个直和怎么证明 win10怎么取消禁用用户访问 我觉得你这个人很健谈是什么意思? 民间借贷什么情况下转刑事 什么叫直?