package com.wode.test;

/**
 *
 * @author Administrator 创建一个票类
 */
public class Ticket implements Runnable {

private int ticket = 10;

@Override
 public void run() {
  //synchronized 同步代码锁   对临界资源ticket 上锁 以免出现不同的接口同时访问到同一个资源 
  //就如买票一样 不能卖出两张相同的票  就得使用同步代码锁
  synchronized (this) {
   for (int i = 0; i < ticket; i++) {
    try {
     Thread.sleep(100);
     String name = Thread.currentThread().getName();
     System.out.println(name + "出售" + ticket + "号票");
     ticket--;
    } catch (InterruptedException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
    
   }

}

}

}

package com.wode.test;
/**
 *
 * @author Administrator
 *开始 买票
 */
public class SellTicket {

public static void main(String[] args) {
  //分别创建四个窗口买票
  Thread thread = new Thread(new Ticket());
  Thread t1 = new  Thread(thread,"一号窗口");
  Thread t2 = new  Thread(thread,"二号窗口");
  Thread t3 = new  Thread(thread,"三号窗口");
  Thread t4 = new  Thread(thread,"四号窗口");
  t1.start();
  t2.start();
  t3.start();
  t4.start();
 }
}

转载于:https://www.cnblogs.com/chenyangpeng/p/5456511.html

2016/05/03(接口 买票 临界资源同步锁)相关推荐

  1. java多线程学习二、安全与不安全示例:12306买票和银行取钱、java内存模型、内存可见性、线程同步块和方法

    文章目录 前言 1. 什么是块,分为几种 2. 静态块与构造块的区别 一. 举例说明:并发情况下,线程不安全 1. 示例1:unsafe12306取票 2. 示例2:unsafe银行取钱 二.线程不安 ...

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

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

  3. C#利用HttpWebRequest、HttpWebResponse调用12306接口,实现登录、查票、买票。

    [免责申明]本文只为学习使用,若有用作商业.其他行为,与本人无关. 使用工具 - UI bootstrap - 后台C# - 插件 datetimepicker.js,select.js UI界面效果 ...

  4. 多线程(并发)买票的案例详解同步代码块和同步方法 (复习)

    文章目录 前言 简单的原理: 队列+锁 常见的买票案例(线程安全:多个线程操作同一个数据.) 结果: 使用同步代码块或者同步方法(解决线程不安全的问题) 添加的方式一:synchronized 关键字 ...

  5. 【Java 并发编程】【05】线程安全问题与线程同步

    5. 线程安全问题与线程同步 多线程编程是有趣且复杂的事情,它常常容易突然出现"错误情况",这是由于系统的线程调度具有一定的随机性.即使程序在运行过程中偶尔会出现问题,那也是由于我 ...

  6. Python + selenium + requests实现12306全自动买票

    Python + selenium + requests实现12306全自动买票 2020.05.03更新: 下面是新的测试结果: 2021.03.28更新:谷歌浏览器升级导致之前的隐藏方法失效,更新 ...

  7. java 买票_java 多线程之synchronized wait/notify解决买票问题

    一.Java线程具有五中基本状态 新建状态(New):当线程对象对创建后,即进入了新建状态,如:Thread t = new MyThread(); 就绪状态(Runnable):当调用线程对象的st ...

  8. Python 每日一记210java模拟电影院买票

    package mypackage;/***电影院买票系统* 注意泛型和容器的使用,特别注意容器内一次性添加多个元素的方法Arrays.asList(1,2,3,4,5)* 注意线程同步问题的解决,特 ...

  9. java 买票_Java—买票窗口

    线程安全问题都是由全局变量及静态变量引起的.若每个线程中对全局变量.静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的:若有多个线程同时执行写操作,一般都需要考虑线程同步,否则的话就可 ...

最新文章

  1. Jquery 点击图片在弹出层显示大图
  2. linux怎么删除mysql用户和组_linux下在mysql数据库中创建和删除用户
  3. QT系统性总结(推荐新手看)
  4. 5种网络IO模型:阻塞IO、非阻塞IO、异步IO、多路复用IO、信号驱动IO
  5. 如何启用SAP Business by design里的Correction Invoice功能
  6. samba3.2的安装全过程(tar方式)
  7. 图解算法学习笔记(七):狄克斯特拉算法
  8. vue中 点击事件的写法_vue中的事件:原生事件与自定义事件__Vue.js
  9. 新突破!CVPR2019接收论文:新的基于自编码变换的无监督表示学习方法—AET
  10. python 迭代器协议_浅谈Python中的生成器和迭代器
  11. android+ndk+libevent,android ndk 编译 libevent
  12. Android 生态消息推送平台介绍
  13. 计算机怎么给课程表涂颜色,Excel做自动统计课时数的彩色课程表
  14. CentOS7 安装jdk8教程
  15. matlab常用命令整理
  16. 拼多多优惠券BUG事件完整回顾
  17. Java七牛云报400错误
  18. 『认知升级』是比其他一切都更加重要的思维模型转变
  19. 台式电脑无法开机,一直显示未检测到信号/显示检测信号线解决方法
  20. 项目管理实战精髓培训课

热门文章

  1. 一场“交通进化”将至: 5G带给车联网与自动驾驶哪些升级?
  2. 新技术:如何用VR训练机器人?
  3. DeFi 史上最大盗窃案:一个漏洞盗走价值 6 亿美元资产?现已归还近一半
  4. 自定义注解!绝对是程序员装大佬的利器!!
  5. 去了两家外包公司,颠覆了我的认知!
  6. 一毕业年薪 201 万!目前全球仅四人,华为最高档“天才少年”这样说
  7. 铁线蕨算法(Adiantum)为低端智能手机提供磁盘加密服务
  8. 面向对象与面向过程区别
  9. IBM服务器49Y4230选件网卡在安装ESXI4.x认不到驱动参考
  10. 三种途径助物联网改变业务 省心省时省成本