多线程模拟卖票程序,并统计各窗口售出数量
来源:互联网 发布:csol网络加速器 编辑:程序博客网 时间:2024/06/05 18:37
import java.io.IOException;import java.util.HashMap;import java.util.Map;class Ticket implements Runnable{private int tick = 1000;//用于统计各窗口售出数量Map<String,Integer> map = new HashMap<String, Integer>();Object obj = new Object();public void run(){boolean flag = true;while(flag){synchronized(obj){if(tick>0){String name = Thread.currentThread().getName();//null表示之前没售出过,现在的值为1,不为空的话在上一次基础上票数加1int currentCount = map.get(name)==null?1:map.get(name)+1;//将修改后的售票张数放回去map.put(name, currentCount);//System.out.println(name+"....sale : "+ tick);tick--;}else{flag = false;}}}}}public class ThreadTest{public static void main(String[] args) throws IOException, InterruptedException {Ticket t = new Ticket();Thread t1 = new Thread(t);Thread t2 = new Thread(t);Thread t3 = new Thread(t);Thread t4 = new Thread(t);t1.start();t2.start();t3.start();t4.start();//等待卖票线程执行完毕t1.join();t2.join();t3.join();t4.join();//统计各个窗口出售信息for(String name:t.map.keySet()){System.out.println(name+"--"+t.map.get(name));}}}
结果示例:
Thread-3--339Thread-1--340Thread-2--242Thread-0--79
0 0
- 多线程模拟卖票程序,并统计各窗口售出数量
- 卖票模拟多线程
- 卖票——多线程模拟卖票系统
- 多线程之卖票程序
- 多线程同步:多窗口卖票
- JAVA多线程实现模拟卖票
- java多线程:6、模拟卖票
- 多线程经典问题之多窗口卖票
- 多线程之多个窗口卖票01
- 多线程之多个窗口卖票02
- 问题: 写一个多线程程序实现铁路卖票系统,4个窗口同时售票,线程同步
- 利用多线程模拟卖票的功能
- 利用多线程写一个卖票程序
- 多线程卖票
- 多线程之多窗口卖票&线程之间的通信
- Java 多线程实现多个窗口同时卖票
- 统计程序中的代码数量
- 编写一个 火车站卖票程序--3个窗口同时售票
- wordpress自定义分类页面
- 串的置换操作Replace(&S,T,V)的算法
- NYOJ 37 回文字符串
- Python学习之路
- 部署struts2项目到 google app engine (age)中遇到的一个问题
- 多线程模拟卖票程序,并统计各窗口售出数量
- Error: Could not stat() command file '/usr/local/nagios/var/rw/nagios.cmd'!
- nat的基本配置
- SP2010开发和VS2010专家"食谱"--第三章节--高级工作流(3)--创建状态机工作流
- 第01讲-隐藏密码
- Myeclips运行的的时候出现Could not find the main class:Main. Program will exit.
- 本该周末休息的时间,我们来加班了垃圾噶见过啦叽里咕噜拉过
- 三层架构
- Linux igmp snooping 学习笔记 之一 相应的数据结构与初始化