package com.softeem.demo;

/**

*@author leno

*售票类

*/

class SaleTicket implements Runnable {

int tickets = 100;

public void run() {

while (tickets > 0) {

sale();

//或者下面这样实现

//        synchronized (this) {

//            if (tickets > 0) {

//                System.out.println(Thread.currentThread().getName() + "卖第"

//                      + (100 - tickets + 1) + "张票");

//                tickets--;

//            }

//        }

}

}

public synchronized void sale() {

if (tickets > 0) {

System.out.println(Thread.currentThread().getName() + "卖第"

+ (100 - tickets + 1) + "张票"); //打印第几个线程正在执行

tickets--;

}

}

}

public class TestSaleTicket {

public static void main(String[] args) {

SaleTicket st = new SaleTicket();

new Thread(st, "一号窗口").start();

new Thread(st, "二号窗口").start();

new Thread(st, "三号窗口").start();

new Thread(st, "四号窗口").start();

}

}

java多线程售票问题_使用java多线程实现火车站售票的问题相关推荐

  1. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  2. java多线程与并发_漫画 | Java多线程与并发(一)

    1.什么是线程? 2.线程和进程有什么区别? 3.如何在Java中实现线程? 4.Java关键字volatile与synchronized作用与区别? volatile修饰的变量不保留拷贝,直接访问主 ...

  3. java死锁业务场景_【深入浅出多线程系列十二】:什么是死锁?(场景+代码示例)...

    在学习Java的道路上,是否路过多线程时总让你很迷惘:很不巧,我也是,而使我们感到很迷惘主要原因都源于没有对概念的深深的理解和实践.所以我决定漫步Java多线程,同你一起会会多线程. 多线程系列 多线 ...

  4. java多线程交替打印_使用Java实现三个线程交替打印0-74

    使用Java实现三个线程交替打印0-74 题目分析 三个线程交替打印,即3个线程是按顺序执行的.一个线程执行完之后,唤醒下一个线程,然后阻塞,等待被该线程的上一个线程唤醒.执行的顺序是一个环装的队列 ...

  5. java是什么格式_是java格式

    错误:编码GBK的不可映射字符的解决办法 最近在重新补javaSE的基础,编辑器编写完代码以后,在控制台运行代码段的时候,出现了以下的错误提示:错误:编码GBK的不可映射字符 在通过查询谷哥和度娘以后 ...

  6. JAVA redis缓存过期_失效java服务器

    Java 并发/多线程教程--4并发模型 本系列译自jakob jenkov的Java并发多线程教程(本章节部分内容参考http://ifeve.com/并发编程模型),个人觉得很有收获.由于个人水平 ...

  7. java pdf插件下载_免费java pdf控件

    云原生的概念和理论体系非常的完备,but talk is cheap , show me the code ! 但是作为一名程序员,能动手的咱绝对不多BB,虽然talk并不cheap , 能跟不同层次 ...

  8. java 线程组作用_浅析Java中线程组(ThreadGroup类)

    一.概念 Java中使用ThreadGroup类来代表线程组,表示一组线程的集合,可以对一批线程和线程组进行管理.可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线 ...

  9. java account函数的_用Java进行同时函数调用 - java

    在我的应用程序中,我以以下方式加载缓存. 加载用户缓存loadUserCache(); 加载帐户缓存loadAccountCache(); 加载客户缓存loadCustomerCache(); 上述每 ...

  10. java技术入门培训_入门java怎么自学?推荐谁的课程?

    想要知道如何学习Java首先需要对她有一个大致的了解,Java是面向对象的编程语言,具有简单性.分布式.安全性.平台独立与可移植性.多线程.动态性等特点.现在多用于编写桌面应用程序.Web应用程序.分 ...

最新文章

  1. 华为:憧憬6G,共同定义6G
  2. [转载]poj 计算几何题全集(转)
  3. UA MATH563 概率论的数学基础 中心极限定理5 Renyi定理
  4. 有感于任正非老爷子的发言
  5. 【BZOJ 1801】【AHOI 2009】中国象棋(递推DP)
  6. css中margin:0 auto没作用
  7. 设计模式08_适配器
  8. java数字常量_数字常量 - javawebsoa - 博客园
  9. cnpm 没反应_世界上“最蠢”的鱼, 被吃了一半还没反应, 但永远不会灭绝
  10. 简单调用exe的方法
  11. 包邮!送55本《大数据浪潮之巅:新技术商业制胜之道》
  12. Adobe Creative Cloud官方卸载工具
  13. WINRAR弹出激活框解决
  14. 周迅 明星烟熏妆更妖艳?
  15. java如何进行word文档的合并
  16. 转自goosman的编程开发心路历程
  17. win11系统苹果电脑如何安装 Windows11绕过tpm限制在苹果电脑进行安装的步骤方法
  18. 神鬼传奇客户端-终极优化精简方法
  19. 5.临床预测模型的构建--cox回归分析
  20. 微信小程序怎么打通视频号?只差一个自定义版交易组件

热门文章

  1. 基于51单片机GPS定位系统设LCD12864显示(程序+原理图+PCB+论文)
  2. 自由Android安全研究员陈愉鑫:移动App灰色产业案例分析与防范
  3. 当对手有 45 亿资金、1 亿用户,你怎么办?
  4. windows环境搭建MQTT
  5. 考研联系导师全攻略!
  6. jackson转换json大写_Jackson-Java bean到JSON字符串:大写变量在JSON中转换为小写
  7. 2020年3月22日总结
  8. Android网络通信(HttpURLConnection)和 数据传输格式(JSON)
  9. 上银驱动器使用手册_上银伺服电机调试说明书.ppt
  10. Vue修改更新data数据