1 package shb.java.demo;
 2 /**
 3  * 多线程测试卖票小程序。
 4  * @Package:shb.java.demo
 5  * @Description:
 6  * @author shaobn
 7  * @Date 2015-9-2下午7:49:53
 8  */
 9 public class TestSyn {
10     public static void main(String[] args) {
11         //此注释为实现方式一
12         /*TicketDemo td = new TicketDemo();
13         Thread t1 = new Thread(td);
14         Thread t2 = new Thread(td);
15         t1.start();
16         t2.start();*/
17         //为实现方式二
18         TicketDemo2 td2 = new TicketDemo2();
19         Thread t3 = new Thread(td2);
20         Thread t4 = new Thread(td2);
21         t3.start();
22         t4.start();
23     }
24 }
25 /**
26  * 卖票的类(实现方式一)
27  * @Package:shb.java.demo
28  * @Description:
29  * @author shaobn
30  * @Date 2015-9-2下午7:44:45
31  */
32 class TicketDemo implements Runnable{
33     private int ticket = 200;
34     public void run(){
35         while(true){
36             synchronized(this){
37             if(ticket>0){
38                 try {
39                     Thread.sleep(100);
40                 } catch (Exception e) {
41                     // TODO: handle exception
42                     e.printStackTrace();
43                 }
44                 System.out.println(Thread.currentThread()+"***"+"票数为"+ticket--);
45             }
46             }
47         }
48     }
49
50 }
51 /**
52  * 卖票的类(实现方式二)
53  * @Package:shb.java.demo
54  * @Description:
55  * @author Shihaobin
56  * @Date 2015-9-2下午7:51:56
57  */
58 class TicketDemo2 implements Runnable{
59     public int ticket = 200;
60     public void run(){
61         while(true){
62             show();
63         }
64     }
65     //实现对多线程程序的封装
66     public synchronized void show(){
67         if(ticket>0){
68             try {
69                 Thread.sleep(100);
70             } catch (Exception e) {
71                 // TODO: handle exception
72                 e.printStackTrace();
73             }
74             System.out.println(Thread.currentThread()+"***"+"票数为"+ticket--);
75         }
76
77     }
78 }利用多线程实现的简单模拟卖票。

转载于:https://www.cnblogs.com/assassin666/p/4779359.html

java多线程实现卖票小程序相关推荐

  1. java 小程序 多线程_《多线程练习—买票小程序——Java第十四周》

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:    < ...

  2. java多线程并发卖票问题

    最近学习遇到了经典的多线程并发的卖票问题,在网上搜了一些答案,还是决定自己写一写看,于是就出现了这篇文章,希望对初学者有些帮助!!! package practice.threadsafe; /* 多 ...

  3. Java 多线程模拟卖票

    完成操作系统作业Java模拟多线程卖票 /*** @Author: crush* @Date: 2021-05-12 16:24* version 1.0*/ public class SellTic ...

  4. java多线程,卖票案例

    目录 卖票案例 测试代码 代码1 代码2,卖票问题的思考 代码3 代码4 代码5 卖票案例 测试代码 package com.itheima_06;/*需求:某电影院目前正在上映国产大片,共有100张 ...

  5. java多线程重复卖票的问题

    上代码: public class Test {public static void main(String[] args) {ThreadTicket ticket = new ThreadTick ...

  6. java多线程实现卖火车票小案例同步代码块优先级守护线程

    /***  *   * @author 时光机jay  * @version 1.8  * @since 2020/9/28  *   * */ public class Test33 {     s ...

  7. 基于Java毕业设计学习自律养成小程序后台源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计学习自律养成小程序后台源码+系统+mysql+lw文档+部署软件 基于Java毕业设计学习自律养成小程序后台源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B ...

  8. Python实现12306自动抢票小程序

    项目描述: 本程序通过网络爬虫技术,通过抓包分析出一次购票过程中出现的所有请求,最后通过Python程序一步步实现模拟浏览器进行请求.本程序通过调用云打码平台实现登录时候验证码校验,并能实现不断地监控 ...

  9. 基于JAVA社区微服务平台小程序服务器端计算机毕业设计源码+系统+lw文档+部署

    基于JAVA社区微服务平台小程序服务器端计算机毕业设计源码+系统+lw文档+部署 基于JAVA社区微服务平台小程序服务器端计算机毕业设计源码+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 ...

  10. 现学现卖微信小程序开发(二)

    现学现卖微信小程序开发(一) 现学现卖微信小程序开发(三):引入Rx,为小程序插上翅膀 一个Todo应用的小程序版 好的,那么下一步我们就先照猫画虎,新建一个todos文件夹,然后一套四样同名文件准备 ...

最新文章

  1. 像鸟一样树上栖息、空中抓物,斯坦福给无人机安上爪子,登Science子刊封面
  2. 文轩在线:如何让IT部门成为企业的价值中心
  3. java打印出继承体系的类(包括抽象类)、接口、域字段
  4. 高并发-【抢红包案例】之一:SSM环境搭建及复现红包超发问题
  5. if submission is included through the excel
  6. delphi 执行长时间存储过程 显示进度_项目管理_十大管理体系之「项目进度管理」知识整理及心得分享...
  7. [Python] L1-005. 考试座位号-PAT团体程序设计天梯赛GPLT
  8. tensorflow获取可用GPU设备
  9. Navicate无法连接,提示is not allowed to connect to this mysql server
  10. JS:来一盘紧张而又刺激的五子棋
  11. Android有线IPV6总结(二):内核中RS与RA的一点学习
  12. MySQL字符串规则提取
  13. 【历史上的今天】3 月 6 日:Unix 版权争夺战;豆瓣网上线;谷歌推出了 Google Play
  14. 【Nginx】警惕状态码 499 ,不只是 504
  15. php网页课程设报告,网页设计课程设计报告
  16. 开源堡垒机jumpserver及麒麟堡垒机安装
  17. (附源码)ssm+mysql+基于微信平台的牙科就诊信息管理系统的设计与实现 毕业设计211157
  18. android记录当前滚动高度,Android自定义View - ScrollView实时获取滚动距离
  19. 计算机组装与维修图文,{企业管理流程图}电脑组装与维护培训讲义版十二课电脑组装流程图解(50页)-原创力文档...
  20. python——实现电脑控制手机

热门文章

  1. Android群英传笔记——第十二章:Android5.X 新特性详解,Material Design UI的新体验...
  2. NHibernate3.0里各个dll的用处和简单说明【转】
  3. Entity Framework 实践系列 —— 搞好关系 - 两情相悦(双向一对一)
  4. ListT的RemoveAll方法
  5. 一对多关联关系映射和设置级联属性
  6. mybatis缓存查找顺序
  7. Redis 集群中的纪元(epoch)
  8. excel日期相关计算天数
  9. arch终端添加中文支持_arch/manjaro - 添加archlinuxcn的软件源
  10. IDEA中.properties配置文件输入中文显示Unicode编码,本地编辑器,服务器打开显示Unicode编码问题解决方案