thread32
来源:互联网 发布:exe解压软件安卓版 编辑:程序博客网 时间:2024/06/18 01:38
package com.neutron.t21;import java.util.ArrayList;import java.util.List;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * 有N张火车票,每张票都有1个编号,同时有10个窗口对外售票 * * 分析下面程序可能存在哪些问题:重复售票,还是超量售票? */public class Ticket4 { static List<String> tickets = new ArrayList<>(); private static Lock lock = new ReentrantLock(); static { for (int i = 0; i < 10000; i++) { tickets.add("No:" + i); } } /** * 使用synchronized来解决问题,为什么呢?相当于判断和操作属于原子性操作,不会被打断 * 上述重复出售以及超量出售问题得到解决 */ public static void main(String[] args) { for (int i = 0; i < 10; i++) { new Thread(() -> { while (true) { lock.lock(); try { if (tickets.size() <= 0) { break; } TimeUnit.MICROSECONDS.sleep(6); System.out.println("sell ticket:" + tickets.remove(0)); } catch (InterruptedException e) { e.printStackTrace(); } finally { lock.unlock(); } } }).start(); } }}
阅读全文
0 0
- thread32
- thread32
- Delphi 2007在64Windows系统出现 delphi 2007 assertion failure thread32.cpp 的解决方法
- D2007在64位Win7出现 delphi 2007 assertion failure thread32.cpp 的解决办法
- 如何实现H5游戏的连续性
- 文章标题
- javascript笔记
- 负面SEO新方法:用户体验攻击
- Codeforces Design Tutorial: Learn from Math
- thread32
- 深入浅出-iOS函数式编程的实现 && 响应式编程概念
- thread32
- springmvc 文件上传及压缩的配置详解
- 31.java解决百钱买百鸡的问题
- Spring属性依赖注入(手动装配)
- wamp部署https过程记录及无法启动问题解决
- IC设计基础系列之低功耗篇1:(数字IC)低功耗设计入门(一)——低功耗设计目的与功耗的类型
- [RK3399] SDIO 接口 Wifi 驱动流程分析 (AP6354)