美文网首页
多线程售票问题

多线程售票问题

作者: 让你变好的过程从来都不会很舒服 | 来源:发表于2021-07-25 21:09 被阅读0次

模拟三个售票窗口售票100,分别使用继承Thread和实现Runnable接口的方式,并分析问题所在

public class SellTicket {

    public static void main(String[] args) {

        SellTicket01 sellTicket01 = new SellTicket01();
        SellTicket01 sellTicket02 = new SellTicket01();
        SellTicket01 sellTicket03 = new SellTicket01();
        // 会出现票数超卖的现象
        sellTicket01.start();
        sellTicket02.start();
        sellTicket03.start();
    }
}


class SellTicket01 extends Thread{

    private static int ticketNum = 100; // 让多个线程共享

    @Override
    public void run() {

        while (true) {
            if(ticketNum <= 0){
                System.out.println("售票结束。。。");
                break;
            }
            try {
                Thread.sleep(5);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("线程"+Thread.currentThread().getName()+"售出一张票,还剩余票数:"+(ticketNum--));
        }
    }
}

相关文章

  • 多线程售票问题

    模拟三个售票窗口售票100,分别使用继承Thread和实现Runnable接口的方式,并分析问题所在

  • Java | 多线程经典问题 - 售票

    一、售票需求 1)同一个票池 2)多个窗口卖票,不能出售同一张票 二、售票问题代码实现 (线程与进程小总结,请戳:...

  • 售票问题

    写了第一版以为直接累计减就行,然后发现想简单了,变成递归方式解决感觉自己编程能力有了很大提高。。。。。。。又一次感...

  • 多线程(售票例子)

  • 012-线程,生产消费模式,线程的通讯

    多线程基础 进程和线程 多线程的基本实现 使用Thread类 基本实现: 实现售票业务: 使用Runnable接口...

  • Java多线程-简单例子(门票售卖)

    前言:多个售票点同时售卖门票,通过多线程同步锁实现同步售票。 1.创建JavaProject。 2.编写Ticke...

  • iOS多线程之NSThread

    相关文章:iOS多线程之GCDiOS多线程之NSOperations 案例1--图片下载 案例2--多售票窗口同时...

  • 我对并发的理解

    并发带来复杂 例如:火车售票系统中只剩一张票,两个售票点同时卖出这一张票;多线程环境,多线程同时更改一个公共内存区...

  • 多线程同步代码块

    通过售票案例分析,发现打印出0、-1、-2等错票。多线程的运行出现了安全问题。 问题的原因:当多条语句在操作同一个...

  • 多线程模拟火车站售票出现问题

    *模拟火车站售票 * 分析:火车票总数量,每售出一张数量减一 * 当火车票小于0张时,停止售票 * 使用多...

网友评论

      本文标题:多线程售票问题

      本文链接:https://www.haomeiwen.com/subject/vqmimltx.html