案例:火车站售票(线程安全)

package com.itguo.anli;public class anli {public static void main(String[] args) {MyThread myThread = new MyThread();Thread t1 = new Thread(myThread);Thread t2 = new Thread(myThread);Thread t3 = new Thread(myThread);Thread t4 = new Thread(myThread);t1.setName("窗口1");t2.setName("窗口2");t3.setName("窗口3");t4.setName("窗口4");t1.start();t2.start();t3.start();t4.start();}
}class MyThread implements Runnable{private int i = 100;@Overridepublic void run() {while (i>0){synchronized (this){if (i>0){//获取当前线程对象名称String name = Thread.currentThread().getName();try {Thread.sleep(200);} catch (InterruptedException e) {e.printStackTrace();}--i;//控制台提示System.out.println(name+"卖出了一张票,还剩"+i);}}}}
}

java基础火车站售票(线程安全)相关推荐

  1. Java基础教程-10-多线程

    Java基础教程-10-多线程 1. 多线程 我们在之前,学习的程序在没有跳转语句的前提下,都是由上至下依次执行,那现在想要设计一个程序,边打游戏边听歌,怎么设计? 要解决上述问题,咱们得使用多进程或 ...

  2. java 模拟火车站售票系统_模拟售票系统java编程

    模拟售票系统java编程 /* 项目:用多线程设计一个模拟火车站售票大厅的工作情形. 问题描述:火车站有许多售票窗口,有些开放,有些不开放.顾客进入火车站售票厅后,到某个售票窗口排队等候,排到了就办理 ...

  3. [ 转载 ] Java基础14--创建线程的两个方法

    http://www.cnblogs.com/whgw/archive/2011/10/03/2198506.html Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类 ...

  4. Java基础巩固之线程学习

    一.线程的学习 线程就是程序中执行单个任务的顺序的流程. 线程创建的两种方式: 1.继承Thread类 publicstaticvoidmain(String[]args) { //继承Thread类 ...

  5. Java基础知识回顾--线程

    基本概念 线程是一个程序内部的顺序控制流 Java的线程是通过java.lang.Thread类来实现的.main函数是一个主线程,用户可以通过创建Thread的实例来创建新的线程.每一个线程都必须实 ...

  6. Java基础-进程与线程

    文章目录 一. 进程/线程/线程上下文切换 1. 进程 2. 线程 3. 线程与进程的区别 4. 上下文 5. 寄存器 6. 程序计数器 7. PCB-进程控制块 8. 上下文切换 8.1. 上下文切 ...

  7. JAVA 基础 day-27 练习 线程与线程安全

    1.有一个抽奖池,该抽奖池中存放了奖励的金额,该抽奖池用一个数组int[] arr = {10,5,20,50,100,200,500,800,2,80,300};     创建两个抽奖箱(线程)设置 ...

  8. Java基础21 多线程线程两种实现方式 锁

    一.多线程的概念 1.程序 :一个固定逻辑与数据的集合 就称为程序 例如淘宝 贪吃蛇小游戏 2.CPU: 中央处理器 主要用于协调程序与硬件进行配置的工作 3.并发与并行 1.并发(高并发) 在同一个 ...

  9. 【java基础】子线程任务发生异常,主线程事务如何回滚?

    文章目录 一.提出问题 二.主线程与子线程 三.线程池 四.异常的捕获 五.事务的回滚 一.提出问题 最近有一位朋友问了我这样一个问题,问题的截图如下: 这个问题问的相对比较笼统,我来稍微详细的描述下 ...

最新文章

  1. AI时代,为何机器人公司无法盈利只能走向倒闭?
  2. MySQL 优化实战记录
  3. 物理学家解说2012
  4. 前端实现数字快速递增_天正CAD教程之递增文字应用实例
  5. python3.6安装【scrapy】-最保守方法
  6. 龘(若出身在新中国我的65047777
  7. Hadoop分布式文件系统HDFS的工作原理详述
  8. c语言居中三角形乘法表,用C语言输出四种三角形的九九乘法表
  9. 77-CCI,Commodity Channel Index,商品通道指标.(2015.7.1)
  10. BUUCTF笔记之Misc系列部分WriteUp(一)
  11. telnet命令用法举例
  12. 线性调频(LFM信号)脉冲压缩雷达matlab仿真- 脉冲压缩 测距 测速 距离速度三维像(附matlab代码)
  13. python查询12306余票_12306火车票余票查询Python实现邮件发送
  14. 8.18 @烤仔建工 | 抓住夏天的尾巴,和烤仔一起打造秘密花园吧
  15. 大学《管理学》教材笔记
  16. JQuery中append()方法的使用
  17. Excel实现分时统计折线图
  18. 男人应该摒弃“处女情结”
  19. 在linux系统下实现SHELL自动化批量备份交换机配置文件
  20. NET下基于OO4O,FME,ODP.NET的Oracle Spatial空间数据读取操作

热门文章

  1. mysql polygon_查找POINT是否在MySQL 5.7中的POLYGON中
  2. java饲养员喂动物_体现JAVA中的面向对象思想,接口(抽象类)的用处 :饲养员给动物喂食物 | 学步园...
  3. 五金切断模具结构和设计注意事项
  4. 【万字长文】史上最强css、html总结~看完涨薪不再是梦
  5. BZOJ 2121: 字符串游戏
  6. java中关键字_java中的关键字是什么?
  7. Elasticsearch+Spring Boot集成实践
  8. iPhone连接mac电脑连接时反复连接与断开情况的处理
  9. spring boot注解@PostConstruct
  10. 计算机相关新闻 英语,常见的新闻英语短语有什么