售票类:

package duoxiancheng;import java.util.concurrent.TimeUnit;/*** @author yeqv* @program A2* @Classname Ticket* @Date 2022/1/28 23:04* @Email w16638771062@163.com*/
public class Ticket implements Runnable {//未设置票数,默认为100private int num = 100;public Ticket() {}
//获取传入票数public Ticket(int num) {this.num = num;}public void run() {while (true) {//加锁,当一个进程进入时其他进程阻塞,防止数据出错synchronized (this) {try {//延时1秒TimeUnit.SECONDS.sleep(1);} catch (Exception e) {e.printStackTrace();}if (num > 0) {System.out.printf("[%s] 售出一张票,剩余%d张票%n", Thread.currentThread().getName(), --num);} else {System.out.printf("%n[%s] 票已售完,停止售票。", Thread.currentThread().getName());break;}}try {TimeUnit.SECONDS.sleep(1);} catch (Exception e) {e.printStackTrace();}}}
}

测试类:

package duoxiancheng;/*** @author yeqv* @program A2* @Classname Test4* @Date 2022/1/28 23:03* @Email w16638771062@163.com*/
public class Test4 {public static void main(String[] args) {//传入票数Ticket ticket = new Ticket(20);//创建四个新线程并且更名Thread thread = new Thread(ticket, "郑州站");Thread thread1 = new Thread(ticket, "郑州东站");Thread thread2 = new Thread(ticket, "郑州南站");Thread thread3 = new Thread(ticket, "郑州北站");//启动四个线程thread.start();thread1.start();thread2.start();thread3.start();}
}

java多线程模拟售票相关推荐

  1. 利用JAVA多线程模拟售票系统,对统一资源进行处理

    首先多线程处理统一资源的方式有两种 分别介绍一下两者的区别 synchronized与Lock的区别 1.Lock不是Java语言内置的,synchronized是Java语言的关键字 2.synch ...

  2. Java多线程模拟售票系统

    Java创建多线程的两种基本方法: 方法1.继承Thread类 (1)定义子类,继承Thread类,重写该类的run()方法作为线程执行体; (2)创建该子类的实例作为线程对象; (3)调用线程对象的 ...

  3. Java多线程 模拟售票窗口售票

    编写一个Java 多线程程序,完成三个售票窗口同时出售20张票 程序分析: 1.票数要使用同一个静态值: 2.为保证不会出现卖出同一个票数,要java多线程同步锁. 设计思路: 创建一个站台类Stat ...

  4. Java模拟售票窗口代码_java多线程模拟售票,多个窗口售票

    package com.ma.thread001; /** * 多线程模拟售票,多个窗口售票 * @author ma * */ public class SellTicktDemo implemen ...

  5. java多线程模拟购买火车票

    java多线程模拟购买火车票 本次做的是一个火车票的售卖模拟,不管用户是在窗口还是APP上购买,必然不可能买到同一张票这也就是说一张票的售卖必然是一个线程在操作的,所以,我们在写代码是也要注意这一点 ...

  6. java多线程模拟龟兔赛跑,JAVA多线程模拟龟兔赛跑

    JAVA多线程模拟龟兔赛跑! class Rabbit extends Thread{ Tortoise tor; int Journey; int RabbitSpeed; public Rabbi ...

  7. Java多线程 模拟 购买 退订 机票

     Java多线程 模拟 购买 退订 机票 package cn.com.cloud.sea.thread; /*** @author HenryLee* @version 1.0* 买票*/ publ ...

  8. Java:多线程模拟多站点售票过程

    这是一个在并发状态下对共享资源的多线程访问.这些访问必须是互斥的进行,因为涉及到对资源的修改.假设现在销售火车票.目的地有3个,分别是北京,天津和上海.使用一个枚举类型表示. Destation.ja ...

  9. Java多线程模拟加工厂加工玩具

    创建工厂类, 属性包括:车间类的对象的集合,仓库容量 方法包括: 1. 加工玩具的方法(product),方法的功能是各个车间同时工作.根据仓库容量平均分配给各个车间需要加工玩具的数量.2. 建造玩具 ...

最新文章

  1. 阿里面试题,为什么wait()方法要放在同步块中?
  2. OpenGL窗口属性
  3. 【java学习笔记】浅析JavaWeb开发中Model1模式和Model2模式
  4. CSS3:FlexBox的详解
  5. 文件 云存储服务器配置,文件和存储服务器配置
  6. java创建mysql驱动,JDBC之Java连接mysql实现增删改查
  7. linux网络编程 华清,Linux网络编程之套接字
  8. 在下拉菜单中,传递的value参数为 id时,如何拿到其 label值?
  9. 离异美女跟程序员相亲,结果自我介绍完就被秒删:三无送个儿
  10. 【PAT甲】1007 Maximum Subsequence Sum (25分),求最大字段和及区间
  11. pythonthreading模块_python多线程之 threading模块详解
  12. AMOS分析技术:二阶验证性因子分析
  13. 数论学习笔记之解线性方程 a*x + b*y = gcd(a,b)
  14. 可能改变前端工程化未来的特性:ESM Loader Hooks
  15. 关于安装mathtype后找不到电脑预装office2016安装路径的问题
  16. 【无标题】java核心资料
  17. centos 设置mtu_Linux 服务器修改mtu值
  18. [element]element-ui框架下载
  19. 微信小程序识别当前小程序的版本,开发版、体验版、线上版
  20. Java的异常类和常用类、容器

热门文章

  1. python爬微博数据合法吗_Python 免登录微博数据爬虫(仅研究使用)
  2. 物联网工程实践第九天
  3. openlayers 在圆的边上添加文字
  4. 2020开源界的一大清流(最好的U盘启功制作工具) - Ventoy
  5. HAL库配置GPIO
  6. 补码运算-溢出和自然丢弃
  7. python项目实战:监控电脑网络情况
  8. 利用Python序列实现斗地主操作中的洗牌,发牌,切牌,理牌,随即地主简单功能
  9. (Android学习)设置分割线
  10. 数据结构 | 从哪里开始?