多线程模拟火车站售票并发
花了一天的时间才搞懂的操作,以前觉得自己懂了,但是实践起来却又是另外一回事。总之受益良多。
不能在对象里sleep,对象里写while就是一次性的。
原子锁是线程的东西,也不要放在对象方法中
run方法就是写逻辑的
单一原则
public class Train {private static int count; //总票数public Train() {}public Train(int count) {this.count = count;}public int getCount() {return count;}public void setCount(int count) {this.count = count;}//销售方法public boolean sale() {if (count>0) {System.out.println(Thread.currentThread().getName()+"正在出售一张票,还剩"+count--+"张");return true;}else {return false;}}}
public class Test {public static void main(String[] args) {Train train = new Train(10);Thread1 t1 = new Thread1(train);Thread1 t2 = new Thread1(train);t1.setName("t1");t2.setName("t2");t1.start();t2.start();}}class Thread1 extends Thread {private Train train;public Thread1(Train train) {this.train = train;}@Overridepublic void run() {while (train.sale()) {synchronized (train) {try {Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}}}}}
多线程模拟火车站售票并发相关推荐
- 多线程模拟火车站售票
生活中其实有很多多线程的例子,比如火车站售票就是一个例子.我们先来分析一下, (1)首先要有火车票的总数量,并且每卖出一张火车票,总量就减一 (2)当火车票的数量小于1的时候,就停止售票 (3)使用多 ...
- java 模拟火车站售票系统_模拟售票系统java编程
模拟售票系统java编程 /* 项目:用多线程设计一个模拟火车站售票大厅的工作情形. 问题描述:火车站有许多售票窗口,有些开放,有些不开放.顾客进入火车站售票厅后,到某个售票窗口排队等候,排到了就办理 ...
- Java——使用多线程模拟真实高并发业务并保证安全性(一)
作者专注于Java.架构.Linux.小程序.爬虫.自动化等技术. 工作期间含泪整理出一些资料,微信搜索[javaUp],回复 [java][黑客][爬虫][小程序][面试]等关键字免费获取资料.技术 ...
- 模拟火车站售票窗口,开启三个窗口售票,总票数为100张
方法一:继承Thread class Window extends Thread{static int ticket = 100;public void run(){while (true) {if ...
- java 多线程 售票_Java 多线程 之 火车站售票实例
package com.thread;/** 题目: 人们在火车站的售票窗口排队买火车票 1. 北京西站开门 2. 打开售票窗口 3. 北京西站有10张去长沙的票 4. 打开2个售票窗口, 5 假设每 ...
- Java 多线程 之 火车站售票实例
http://www.verejava.com/?id=16992917973569 package com.thread; /*题目: 人们在火车站的售票窗口排队买火车票1. 北京西站开门2. 打开 ...
- Java多线程实现火车站售票案例
铁道部发布了一个售票任务,要求销售1000张票,要求有5个窗口来进行销售,请编写多线程程序来模拟这个效果 i. 窗口001正在销售第1000张票 ii. 窗口001正在销售第999张票 iii. 窗口 ...
- 售票pv操作java实现_Java多线程实现火车站售票案例
需求: 火车站有5个窗口,有1000张火车票,同时开始售票,请用Java多线程实现 分析: 这是学习Java多线程的时候必定会遇到的一个案例 窗口一共有五个,共同操作1000张票,多以票需要定义成静态 ...
- 运用java 多线程模拟火车售票。。。。
public class Demo01 { public static void main(String[] args) { // TODO Auto-generated method stub // ...
最新文章
- MERGE批量增删查改数据
- 同一目录下有大量文件会影响效率吗_到底是什么原因才导致 select * 效率低下的?
- cmd命令窗口mysql查询表数据命令行_cmd 命令行模式操作数据库 添加查询 修改 删除 ( 表 字段 数据)...
- vue学习笔记-vue双向数据绑定
- jquery 获取元素css的left,top值
- 2019新闻自动挂机阅读脚本
- RS485通讯上下拉电阻的选择
- Sybase数据库安全
- amoeba mysql_mysql中间件-amoeba
- 函数式编程对象Either
- AI搜索引擎优化工具-市场现状及未来发展趋势
- elementui组件中,树形组件的使用
- CSS3实现扇形动画菜单特效
- elasticsearch xpack license过期
- linux(4)进程控制
- 无线调试和unable to connect to 192.168.2.245:5555由于目标计算机积极拒绝,无法连接。 (10061)
- 使用IBM Data Studio 管理DB2
- 机器学习——成绩预测
- Java笨狗groovy学习笔记—Regular Expressions
- ubuntu播放mp4的插件