2016/05/03(接口 买票 临界资源同步锁)
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(接口 买票 临界资源同步锁)相关推荐
- java多线程学习二、安全与不安全示例:12306买票和银行取钱、java内存模型、内存可见性、线程同步块和方法
文章目录 前言 1. 什么是块,分为几种 2. 静态块与构造块的区别 一. 举例说明:并发情况下,线程不安全 1. 示例1:unsafe12306取票 2. 示例2:unsafe银行取钱 二.线程不安 ...
- Java线程同步-模拟买票
文章首发于 2020-11-29 知乎文章:Java线程同步-模拟买票 作者:落雨湿红尘(也是我o) 01 导语 本文使用JAVA代码模拟买票场景下的业务交互,通过示例讲解线程的初始化.线程同步等ja ...
- C#利用HttpWebRequest、HttpWebResponse调用12306接口,实现登录、查票、买票。
[免责申明]本文只为学习使用,若有用作商业.其他行为,与本人无关. 使用工具 - UI bootstrap - 后台C# - 插件 datetimepicker.js,select.js UI界面效果 ...
- 多线程(并发)买票的案例详解同步代码块和同步方法 (复习)
文章目录 前言 简单的原理: 队列+锁 常见的买票案例(线程安全:多个线程操作同一个数据.) 结果: 使用同步代码块或者同步方法(解决线程不安全的问题) 添加的方式一:synchronized 关键字 ...
- 【Java 并发编程】【05】线程安全问题与线程同步
5. 线程安全问题与线程同步 多线程编程是有趣且复杂的事情,它常常容易突然出现"错误情况",这是由于系统的线程调度具有一定的随机性.即使程序在运行过程中偶尔会出现问题,那也是由于我 ...
- Python + selenium + requests实现12306全自动买票
Python + selenium + requests实现12306全自动买票 2020.05.03更新: 下面是新的测试结果: 2021.03.28更新:谷歌浏览器升级导致之前的隐藏方法失效,更新 ...
- java 买票_java 多线程之synchronized wait/notify解决买票问题
一.Java线程具有五中基本状态 新建状态(New):当线程对象对创建后,即进入了新建状态,如:Thread t = new MyThread(); 就绪状态(Runnable):当调用线程对象的st ...
- Python 每日一记210java模拟电影院买票
package mypackage;/***电影院买票系统* 注意泛型和容器的使用,特别注意容器内一次性添加多个元素的方法Arrays.asList(1,2,3,4,5)* 注意线程同步问题的解决,特 ...
- java 买票_Java—买票窗口
线程安全问题都是由全局变量及静态变量引起的.若每个线程中对全局变量.静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的:若有多个线程同时执行写操作,一般都需要考虑线程同步,否则的话就可 ...
最新文章
- Jquery 点击图片在弹出层显示大图
- linux怎么删除mysql用户和组_linux下在mysql数据库中创建和删除用户
- QT系统性总结(推荐新手看)
- 5种网络IO模型:阻塞IO、非阻塞IO、异步IO、多路复用IO、信号驱动IO
- 如何启用SAP Business by design里的Correction Invoice功能
- samba3.2的安装全过程(tar方式)
- 图解算法学习笔记(七):狄克斯特拉算法
- vue中 点击事件的写法_vue中的事件:原生事件与自定义事件__Vue.js
- 新突破!CVPR2019接收论文:新的基于自编码变换的无监督表示学习方法—AET
- python 迭代器协议_浅谈Python中的生成器和迭代器
- android+ndk+libevent,android ndk 编译 libevent
- Android 生态消息推送平台介绍
- 计算机怎么给课程表涂颜色,Excel做自动统计课时数的彩色课程表
- CentOS7 安装jdk8教程
- matlab常用命令整理
- 拼多多优惠券BUG事件完整回顾
- Java七牛云报400错误
- 『认知升级』是比其他一切都更加重要的思维模型转变
- 台式电脑无法开机,一直显示未检测到信号/显示检测信号线解决方法
- 项目管理实战精髓培训课
热门文章
- 一场“交通进化”将至: 5G带给车联网与自动驾驶哪些升级?
- 新技术:如何用VR训练机器人?
- DeFi 史上最大盗窃案:一个漏洞盗走价值 6 亿美元资产?现已归还近一半
- 自定义注解!绝对是程序员装大佬的利器!!
- 去了两家外包公司,颠覆了我的认知!
- 一毕业年薪 201 万!目前全球仅四人,华为最高档“天才少年”这样说
- 铁线蕨算法(Adiantum)为低端智能手机提供磁盘加密服务
- 面向对象与面向过程区别
- IBM服务器49Y4230选件网卡在安装ESXI4.x认不到驱动参考
- 三种途径助物联网改变业务 省心省时省成本