Java线程同步卖票问题解决方法
来源:互联网 发布:淘宝卖家账号多少钱 编辑:程序博客网 时间:2024/04/30 23:35
1、使用同步代码块进行卖票:
/** * <p>java线程同步卖票</p> */public class TicketsCodeBlock implements Runnable { private int count = 100; //总票数目 public static void main(String[] args) { TicketsCodeBlock tickets = new TicketsCodeBlock(); Thread t1 = new Thread(tickets); Thread t2 = new Thread(tickets); Thread t3 = new Thread(tickets); t1.start(); t2.start(); t3.start(); } public void run() { for (int i = 0; i < 10; i++) { synchronized (this) { // 同步代码块 if (count > 0) { try { Thread.sleep(500); // 500ms } catch (Exception e) { e.printStackTrace(); } Thread t = Thread.currentThread(); System.out.println(t.getName() + " 剩余票的数目: " + (count--)); } } } }}
2、使用同步方法进行卖票:
/** * <p>java线程同步买票的问题</p> */public class TicketsMethod implements Runnable { private int count = 100; //总票数目 public static void main(String[] args) { TicketsMethod tickets = new TicketsMethod(); Thread t1 = new Thread(tickets); Thread t2 = new Thread(tickets); Thread t3 = new Thread(tickets); t1.start(); t2.start(); t3.start(); } public void run() { for (int i = 0; i < 10; i++) { sale(); } } /** * <p>使用同步方法进行卖票</p> */ public synchronized void sale() { if (count > 0) { try { Thread.sleep(500); // 500ms } catch (Exception e) { e.printStackTrace(); } Thread t = Thread.currentThread(); System.out.println(t.getName() + " 剩余票的数目: " + (count--)); } }}
0 0
- Java线程同步卖票问题解决方法
- java 线程同步--卖票问题
- Java 线程同步 卖票问题
- 线程同步,卖票
- 用线程同步卖票
- Java多线程通信、同步卖票实例--线程安全、详细注释
- JAVA线程实例-----卖票
- JAVA线程模拟火车站卖票
- java卖票线程问题synchronized
- java中线程的同步的一个卖票的小案例
- java线程同步方法
- Java线程同步方法
- java------线程同步方法
- Java线程:线程的同步-同步方法
- Java线程:线程的同步-同步方法
- Java线程:线程的同步-同步方法
- Java线程:线程的同步-同步方法
- Java线程:线程的同步-同步方法
- hdu 2537 8球胜负
- CALayer - 13
- mac电脑配置adb环境
- 1030. 完美数列(25)
- 老毛桃!至于吗!!真是无语!!!
- Java线程同步卖票问题解决方法
- RabbitMQ消息分发模式----"Hello World"模式
- js——函数表达式
- ffmpeg 直播流截图
- 1031. 查验身份证(15)
- Hibernate 常用类简单介绍
- 位运算符
- NERDTree 配置
- Android的Java层系统服务