需求:
某电影院目前正在上映国产大片, 公有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 多线程 卖票相关推荐

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

    编写一个Java 多线程程序,完成三个售票窗口同时出售20张票(如下图所示); 程序分析:(1)票数要使用同一个静态值: (2)为保证不会出现卖出同一个票数,要java多线程同步锁. 设计思路: (1 ...

  2. Java多线程(卖票案例)

    1.卖票案例需求分析 某天某个景区售票,门票票只有100张,景区有三个售票窗口,同时售票,共享票源(100张) 通过多线程的方式实现三个售票窗口同时售票 首先要明确票源只能有一个 其次需要创建三个Th ...

  3. Java代码实现多线程卖票

    写一个多线程卖票的程序 /*** @author tom* @date 2022-03-29 15:33*/ public class SaleTickets {public static void ...

  4. Lock锁实现多线程卖票

    理解多线程卖票demo Lock架构 使用lock替代synchronized 总结 使用Lock 实现. Lock架构 使用lock替代synchronized import java.util.c ...

  5. Python 多线程卖票问题

    Python 多线程卖票问题 在学习多线程的时候,我们经常要学习到多窗口售票这一经典案例,今天我们将用Python语言写一个简单易懂的售票程序,帮助大家学习理解 有以下要求: 第一.不能出现打印出现混 ...

  6. Java简单的多线程卖票

    package xiancheng; /*定义一个MaiPiao类实现Runnable接口,里面定义一个成员变量: private int tickets =100(票数);在类中重写run()方法实 ...

  7. java线程池售票_Java多线程卖票例子

    以卖票的例子来介绍多线程和资源共享. 卖票是包含一系列动作的过程,有各种操作,例如查询票.收钱.数钱.出票等,其中有一个操作是每次卖掉一张,就将总的票数减去1.有10张票,如果一个人卖票,先做查票.收 ...

  8. 多线程卖票深刻分析:为什么会出现只有一个窗口卖票的现象

    一.需求分析: 模拟卖票窗口,实现5个窗口同时卖100张票(代码为了截图采用30张票) 知识点:多线程,锁,多线程的安全问题,线程的生命周期 二.代码实现 public class TestSellT ...

  9. JUC学习(一):synchronized的介绍及使用(实现多线程卖票)

    一.synchronized简介 synchronized 是 Java 中的关键字,是一种同步锁.它修饰的对象有以下几种: 1.修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{} ...

最新文章

  1. chown -r oracle:oinstall /oracle,ORA-17503: 因为CHOWN -R ORACLE:OINSTALL 导致的
  2. 个推数据统计产品(个数)iOS集成实践
  3. 《CDN 之我见》系列二:原理篇(缓存、安全)
  4. springMVC 处理json 及 HttpMessageConverter 接口
  5. Windows系统调用学习笔记(二)—— 3环进0环
  6. 【C语言进阶深度学习记录】二十四 指针与数组的本质分析一
  7. 公众号管理模块-DouPHP模块化企业网站管理系统v1.6
  8. python中的json函数_python中装饰器、内置函数、json的详解
  9. cp210x驱动怎么安装_电脑声卡驱动怎么安装,教你三步搞定声卡驱动
  10. 欧易OKEx交易大数据:BTC合约多空持仓人数比0.98,合约持仓总量为24.90亿美元
  11. iis web服务扩展_Web服务器系统都有哪些类型?都有什么优点呢?
  12. 杨晓峰-Java核心技术-9 HashMap Hashtable TreeMap MD
  13. 在OpenFOAM中获取网格详细信息
  14. mysql 1236错误_MySQL主从失败 错误Got fatal error 1236解决方法
  15. 回国后无线网safari无法连接服务器,解决Mac能连上WIFI但无法上网的问题
  16. 目标检测论文解读复现之十九:基于YOLOv5网络模型的人员口罩佩戴实时检测
  17. 系统工程原理(持续更新):3.方法论--霍尔“三维结构”模型
  18. UE4.CPP变焦推进效果(_杰森大师)
  19. 阿里妈妈称日均覆盖人数破7000万
  20. 中国工商银行数据中心(北京)一面--2011

热门文章

  1. python批量整理地籍项目的文件夹
  2. 用JSSE定制SSL连接
  3. 新一代嵌入式客流统计一体机
  4. 5000词学英语——DAY1
  5. 2008 网马王网站分析
  6. mysql 验证_使用MySQL验证Open***用户登录访问
  7. chrome不用翻墙也能用:
  8. java内部模型,13 张图拆解 Java 中的内存模型
  9. 2022年宁夏医院三基考试急症医学考试模拟题及答案
  10. CRM实施的目的是什么