public class xc {

public static void main(String[] args) throws InterruptedException {// TODO Auto-generated method stubSelltickets a=new Selltickets();Thread t=new Thread(a, "一号窗口");Thread t1=new Thread(a, "二号窗口");Thread t2=new Thread(a, "三号窗口");t.start();t1.start();t2.start();

class Selltickets implements Runnable{

private static int tickets=100;@Overridepublic void run(){  while(true){synchronized(this){ if(tickets>0){System.out.println(Thread.currentThread().getName()+"  "+"正在售出第"+tickets--+"张票");System.out.println("完成售票!当前系统余票"+tickets+"张");}else{break;    }}
try {Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}}}    }

输出结果:
一号窗口 正在售出第100张票
完成售票!当前系统余票99张
三号窗口 正在售出第99张票
完成售票!当前系统余票98张
二号窗口 正在售出第98张票
完成售票!当前系统余票97张
二号窗口 正在售出第97张票
完成售票!当前系统余票96张
三号窗口 正在售出第96张票
完成售票!当前系统余票95张
一号窗口 正在售出第95张票
完成售票!当前系统余票94张
一号窗口 正在售出第94张票
完成售票!当前系统余票93张
三号窗口 正在售出第93张票
完成售票!当前系统余票92张
二号窗口 正在售出第92张票
完成售票!当前系统余票91张
三号窗口 正在售出第91张票
完成售票!当前系统余票90张
二号窗口 正在售出第90张票
完成售票!当前系统余票89张
一号窗口 正在售出第89张票
完成售票!当前系统余票88张
三号窗口 正在售出第88张票
完成售票!当前系统余票87张
一号窗口 正在售出第87张票
完成售票!当前系统余票86张
二号窗口 正在售出第86张票
完成售票!当前系统余票85张
一号窗口 正在售出第85张票
完成售票!当前系统余票84张
二号窗口 正在售出第84张票
完成售票!当前系统余票83张
三号窗口 正在售出第83张票
完成售票!当前系统余票82张
二号窗口 正在售出第82张票
完成售票!当前系统余票81张
一号窗口 正在售出第81张票
完成售票!当前系统余票80张
三号窗口 正在售出第80张票
完成售票!当前系统余票79张
一号窗口 正在售出第79张票
完成售票!当前系统余票78张
二号窗口 正在售出第78张票
完成售票!当前系统余票77张
三号窗口 正在售出第77张票
完成售票!当前系统余票76张
二号窗口 正在售出第76张票
完成售票!当前系统余票75张
一号窗口 正在售出第75张票
完成售票!当前系统余票74张
三号窗口 正在售出第74张票
完成售票!当前系统余票73张
二号窗口 正在售出第73张票
完成售票!当前系统余票72张
一号窗口 正在售出第72张票
完成售票!当前系统余票71张
三号窗口 正在售出第71张票
完成售票!当前系统余票70张
一号窗口 正在售出第70张票
完成售票!当前系统余票69张
二号窗口 正在售出第69张票
完成售票!当前系统余票68张
三号窗口 正在售出第68张票
完成售票!当前系统余票67张
一号窗口 正在售出第67张票
完成售票!当前系统余票66张
二号窗口 正在售出第66张票
完成售票!当前系统余票65张
三号窗口 正在售出第65张票
完成售票!当前系统余票64张
一号窗口 正在售出第64张票
完成售票!当前系统余票63张
二号窗口 正在售出第63张票
完成售票!当前系统余票62张
三号窗口 正在售出第62张票
完成售票!当前系统余票61张
一号窗口 正在售出第61张票
完成售票!当前系统余票60张
二号窗口 正在售出第60张票
完成售票!当前系统余票59张
三号窗口 正在售出第59张票
完成售票!当前系统余票58张
一号窗口 正在售出第58张票
完成售票!当前系统余票57张
二号窗口 正在售出第57张票
完成售票!当前系统余票56张
三号窗口 正在售出第56张票
完成售票!当前系统余票55张
一号窗口 正在售出第55张票
完成售票!当前系统余票54张
二号窗口 正在售出第54张票
完成售票!当前系统余票53张
三号窗口 正在售出第53张票
完成售票!当前系统余票52张
一号窗口 正在售出第52张票
完成售票!当前系统余票51张
二号窗口 正在售出第51张票
完成售票!当前系统余票50张
三号窗口 正在售出第50张票
完成售票!当前系统余票49张
一号窗口 正在售出第49张票
完成售票!当前系统余票48张
二号窗口 正在售出第48张票
完成售票!当前系统余票47张
三号窗口 正在售出第47张票
完成售票!当前系统余票46张
一号窗口 正在售出第46张票
完成售票!当前系统余票45张
二号窗口 正在售出第45张票
完成售票!当前系统余票44张
三号窗口 正在售出第44张票
完成售票!当前系统余票43张
一号窗口 正在售出第43张票
完成售票!当前系统余票42张
二号窗口 正在售出第42张票
完成售票!当前系统余票41张
三号窗口 正在售出第41张票
完成售票!当前系统余票40张
一号窗口 正在售出第40张票
完成售票!当前系统余票39张
二号窗口 正在售出第39张票
完成售票!当前系统余票38张
三号窗口 正在售出第38张票
完成售票!当前系统余票37张
一号窗口 正在售出第37张票
完成售票!当前系统余票36张
二号窗口 正在售出第36张票
完成售票!当前系统余票35张
三号窗口 正在售出第35张票
完成售票!当前系统余票34张
一号窗口 正在售出第34张票
完成售票!当前系统余票33张
二号窗口 正在售出第33张票
完成售票!当前系统余票32张
三号窗口 正在售出第32张票
完成售票!当前系统余票31张
一号窗口 正在售出第31张票
完成售票!当前系统余票30张
二号窗口 正在售出第30张票
完成售票!当前系统余票29张
三号窗口 正在售出第29张票
完成售票!当前系统余票28张
一号窗口 正在售出第28张票
完成售票!当前系统余票27张
二号窗口 正在售出第27张票
完成售票!当前系统余票26张
三号窗口 正在售出第26张票
完成售票!当前系统余票25张
一号窗口 正在售出第25张票
完成售票!当前系统余票24张
二号窗口 正在售出第24张票
完成售票!当前系统余票23张
三号窗口 正在售出第23张票
完成售票!当前系统余票22张
一号窗口 正在售出第22张票
完成售票!当前系统余票21张
二号窗口 正在售出第21张票
完成售票!当前系统余票20张
三号窗口 正在售出第20张票
完成售票!当前系统余票19张
一号窗口 正在售出第19张票
完成售票!当前系统余票18张
二号窗口 正在售出第18张票
完成售票!当前系统余票17张
三号窗口 正在售出第17张票
完成售票!当前系统余票16张
一号窗口 正在售出第16张票
完成售票!当前系统余票15张
二号窗口 正在售出第15张票
完成售票!当前系统余票14张
三号窗口 正在售出第14张票
完成售票!当前系统余票13张
一号窗口 正在售出第13张票
完成售票!当前系统余票12张
二号窗口 正在售出第12张票
完成售票!当前系统余票11张
三号窗口 正在售出第11张票
完成售票!当前系统余票10张
一号窗口 正在售出第10张票
完成售票!当前系统余票9张
二号窗口 正在售出第9张票
完成售票!当前系统余票8张
三号窗口 正在售出第8张票
完成售票!当前系统余票7张
一号窗口 正在售出第7张票
完成售票!当前系统余票6张
二号窗口 正在售出第6张票
完成售票!当前系统余票5张
三号窗口 正在售出第5张票
完成售票!当前系统余票4张
一号窗口 正在售出第4张票
完成售票!当前系统余票3张
二号窗口 正在售出第3张票
完成售票!当前系统余票2张
三号窗口 正在售出第2张票
完成售票!当前系统余票1张
一号窗口 正在售出第1张票
完成售票!当前系统余票0张

java线程 模拟窗口售票相关推荐

  1. java线程模拟生产者消费者问题

    所谓的生产者消费者问题,就是存在生产者和消费者两个线程,当仓库还没满的时候,生产者可以生产,当仓库没空的时候,消费者可以取走商品. 我们用实例说话: 下面,我们创建几个类: 1.消费者--主要负责消费 ...

  2. 运用java 多线程模拟火车售票。。。。

    public class Demo01 { public static void main(String[] args) { // TODO Auto-generated method stub // ...

  3. java线程模拟银行取款_多线程模拟银行取款

    packagetestsynchrozied;/*** 功能:多个用户同时对一个账户取款 * 使用线程的同步 * * 1.设计一个账户类 余额,取款,显示余额 * 2.取款的线程 * 3.用户同时取款 ...

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

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

  5. 关于java线程同步的笔记_线程同步(JAVA笔记-线程基础篇)

    在多线程应用程序中经常会遇到线程同步的问题.比如:两个线程A.线程B可能会 "同时" 执行同一段代码,或修改同一个变量.而很多时候我们是不希望这样的. 这时候,就需要用到线程同步. ...

  6. 多线程试验。模拟航班售票系统,实现4个售票窗口发售某班次航班的100张机票,一个售票窗口用一个线程表示。要求不能重复发售。

    五一假期要到了,希望大家都都能开开心心 代码 import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; i ...

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

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

  8. 模拟火车站售票窗口,开启三个窗口售票,总票数为100张

    方法一:继承Thread class Window extends Thread{static int ticket = 100;public void run(){while (true) {if ...

  9. Java线程同步-模拟买票

    文章首发于 2020-11-29 知乎文章:Java线程同步-模拟买票 作者:落雨湿红尘(也是我o) 01 导语 本文使用JAVA代码模拟买票场景下的业务交互,通过示例讲解线程的初始化.线程同步等ja ...

最新文章

  1. AD5934阻抗变换模块实验电路板
  2. Vue前端-Flask后台跨域访问问题的处理
  3. wpf mvvm 实例
  4. lisp用entmake生产圆柱体_使用lisp语言实现在平面图中自动画出桥梁的墩柱标识.doc...
  5. Linux awk 命令
  6. 用原生JavaScript实现简单轮播图
  7. 深入学习SAP UI5框架代码系列之七:控件数据绑定的三种模式 - One Way, Two Way和OneTime实现原理比较
  8. error:use of undeclared identifier
  9. 查看您的Solr缓存大小:Eclipse Memory Analyzer
  10. linux 线程 拷贝,linux下实现多线程拷贝命令
  11. Spring Boot Learning(模版引擎)
  12. Hbase Region in transition (RIT) 异常解决
  13. vue项目中使用阿里巴巴矢量图标库iconfont
  14. weblogic部署静态网页
  15. STM32 ETR使用
  16. PHP抓取页面中a标签的href属性值以及a中间内容
  17. scp传文件指定端口、传输目录
  18. 电脑卡修复计算机有用吗,电脑卡重装系统有用吗|电脑太卡可以重装系统解决吗...
  19. 二叉树 二叉树遍历 通过二叉树遍历求得二叉树
  20. 用HTML语言编写 蓝色字体,背景色为蓝色,字体为红色的代码 怎么用HTML的形式表示?...

热门文章

  1. UML图及UML工具使用技巧
  2. 蓝桥杯:三羊献瑞(答案不唯一)
  3. RaspBerry Pi 系统安装——Raspbian(精简版)
  4. 淘点点能否不孚众望扛起阿里O2O的大任?
  5. LeetCode 89 双周赛
  6. DedeCMS最新文章、相关文章、推荐文章、热点文章、头条
  7. 最坏的不是面试被拒,而是没面试机会,以面试官视角分析哪些简历至少能有面试机会
  8. COGS 775. 山海经 【线段树】
  9. Java 无效的标记_Java--Error:java: 无效的标记: -release
  10. 李筱懿:视频号如何运营才能出爆款?