java多线程模拟购买火车票

本文通过Java多线程技术模拟火车票售卖过程,确保线程安全。采用面向对象编程思想,设计了车票类、系统类(统一存储票的车站类)和窗口类,其中窗口类为多线程实现,确保同一时间只能有一张票被操作。使用Vector集合保证线程安全,并通过单例模式设计系统类。最后进行测试并展示运行结果。
摘要由CSDN通过智能技术生成

java多线程模拟购买火车票

  1. 本次做的是一个火车票的售卖模拟,不管用户是在窗口还是APP上购买,必然不可能买到同一张票这也就是说一张票的售卖必然是一个线程在操作的,所以,我们在写代码是也要注意这一点

  2. 首先我们要进行分析 我们需要几个类来完成我们的代码 根据java面向对象编程的思想,我们可以代入现实生活中的场景
    买票–>车站–>窗口–>购票
    通过上述的流程我们可以大概的先分为三个类 车票类 车站类(或者系统类,统一储存票的地方)
    而其中,我们知道火车站或者APP上,每个用户在任何时间都能够购票,所以买票是可以很多人一起进行的,而窗口也是如此,同样的时间,有可能5个窗口都在售票,但是窗口出票是单线程的,而售票功能则是多线程在进行的,所以我们将窗口类设置为多线程的实现类

  3. 类的分析完毕,开始编写代码

  • 车票类-->起始站-->终点站-->价格  这是车票固有的属性
    
  • 系统类-->统一储存的车票(可以用集合来储存)-->出票方法(从集合中减少一张票,售出)
    
  • 窗口类-->继承Thread并重写run()方法-->售票方法(调用系统中的出票方法)
    

车票类

package Thread.train_tickets;

public class Ticket {
   
    private String start;
    private String end;
    private Float price;

    public Ticket(){
   }
    public Ticket(String start, String end, Float price){
   
        this.start = start;
        this.end = end;
        this.price = price;
    }

    public String getStart() {
   
        return start;
    }

    public void setStart(String start) {
   
        this.start = start;
    }

    public String getEnd() {
   
        return end;
    }

    public void setEnd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值