Java 多线程 卖票
需求:
某电影院目前正在上映国产大片, 公有100张票 , 而它有3个窗口卖票, 设计一个程序模拟该电影院卖票
1.定义一个类SellTicke实现Runnable接口, 里面定义一个成员变量:
2.在SellTicket类中重写run()方法
A 判断票数大于0就卖票,并告知是哪个窗口卖的
B 卖了之后,总票数-1
C 票没有了,也可能有人来问,所以这里用死循环让卖票的动作一直执行
3.定义一个测试类 SellTickeDemo , 里面有main() 方法
A 创建SellTicket类对象
B 创建三个Thread类的对象, 把SellTicket对象作为构造函数方法的参数,并给出对应的窗口名称
C启动线程
代码示例
//定义一个类SellTicke实现Runnable接口, 里面定义一个成员变量:public class SellTicke implements Runnable {private int ticket = 100;//在SellTicket类中重写run()方法@Overridepublic void run() {/*A 判断票数大于0就卖票,并告知是哪个窗口卖的B 卖了之后,总票数-1C 票没有了,也可能有人来问,所以这里用死循环让卖票的动作一直执行*/while (true) {//采用死循环if (ticket > 0) {//通过sleep()方法来模拟出票时间try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName() + "正在出售第" + ticket + "张票");ticket--;}}}
}
//定义一个测试类 SellTickeDemo , 里面有main() 方法
public class SellTickeDemo {public static void main(String[] args) {//A 创建SellTicket类对象SellTicke st=new SellTicke();//B 创建三个Thread类的对象, 把SellTicket对象作为构造函数方法的参数,并给出对应的窗口名称Thread t1=new Thread(st,"窗口1");Thread t2=new Thread(st,"窗口2");Thread t3=new Thread(st,"窗口3");//启动线程t1.start();t2.start();t3.start();}
}
Java 多线程 卖票相关推荐
- java 多线程 卖票_编写一个Java 多线程程序,完成三个售票窗口同时出售20张票(如下图所示);...
编写一个Java 多线程程序,完成三个售票窗口同时出售20张票(如下图所示); 程序分析:(1)票数要使用同一个静态值: (2)为保证不会出现卖出同一个票数,要java多线程同步锁. 设计思路: (1 ...
- Java多线程(卖票案例)
1.卖票案例需求分析 某天某个景区售票,门票票只有100张,景区有三个售票窗口,同时售票,共享票源(100张) 通过多线程的方式实现三个售票窗口同时售票 首先要明确票源只能有一个 其次需要创建三个Th ...
- Java代码实现多线程卖票
写一个多线程卖票的程序 /*** @author tom* @date 2022-03-29 15:33*/ public class SaleTickets {public static void ...
- Lock锁实现多线程卖票
理解多线程卖票demo Lock架构 使用lock替代synchronized 总结 使用Lock 实现. Lock架构 使用lock替代synchronized import java.util.c ...
- Python 多线程卖票问题
Python 多线程卖票问题 在学习多线程的时候,我们经常要学习到多窗口售票这一经典案例,今天我们将用Python语言写一个简单易懂的售票程序,帮助大家学习理解 有以下要求: 第一.不能出现打印出现混 ...
- Java简单的多线程卖票
package xiancheng; /*定义一个MaiPiao类实现Runnable接口,里面定义一个成员变量: private int tickets =100(票数);在类中重写run()方法实 ...
- java线程池售票_Java多线程卖票例子
以卖票的例子来介绍多线程和资源共享. 卖票是包含一系列动作的过程,有各种操作,例如查询票.收钱.数钱.出票等,其中有一个操作是每次卖掉一张,就将总的票数减去1.有10张票,如果一个人卖票,先做查票.收 ...
- 多线程卖票深刻分析:为什么会出现只有一个窗口卖票的现象
一.需求分析: 模拟卖票窗口,实现5个窗口同时卖100张票(代码为了截图采用30张票) 知识点:多线程,锁,多线程的安全问题,线程的生命周期 二.代码实现 public class TestSellT ...
- JUC学习(一):synchronized的介绍及使用(实现多线程卖票)
一.synchronized简介 synchronized 是 Java 中的关键字,是一种同步锁.它修饰的对象有以下几种: 1.修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{} ...
最新文章
- chown -r oracle:oinstall /oracle,ORA-17503: 因为CHOWN -R ORACLE:OINSTALL 导致的
- 个推数据统计产品(个数)iOS集成实践
- 《CDN 之我见》系列二:原理篇(缓存、安全)
- springMVC 处理json 及 HttpMessageConverter 接口
- Windows系统调用学习笔记(二)—— 3环进0环
- 【C语言进阶深度学习记录】二十四 指针与数组的本质分析一
- 公众号管理模块-DouPHP模块化企业网站管理系统v1.6
- python中的json函数_python中装饰器、内置函数、json的详解
- cp210x驱动怎么安装_电脑声卡驱动怎么安装,教你三步搞定声卡驱动
- 欧易OKEx交易大数据:BTC合约多空持仓人数比0.98,合约持仓总量为24.90亿美元
- iis web服务扩展_Web服务器系统都有哪些类型?都有什么优点呢?
- 杨晓峰-Java核心技术-9 HashMap Hashtable TreeMap MD
- 在OpenFOAM中获取网格详细信息
- mysql 1236错误_MySQL主从失败 错误Got fatal error 1236解决方法
- 回国后无线网safari无法连接服务器,解决Mac能连上WIFI但无法上网的问题
- 目标检测论文解读复现之十九:基于YOLOv5网络模型的人员口罩佩戴实时检测
- 系统工程原理(持续更新):3.方法论--霍尔“三维结构”模型
- UE4.CPP变焦推进效果(_杰森大师)
- 阿里妈妈称日均覆盖人数破7000万
- 中国工商银行数据中心(北京)一面--2011