订票系统差不多是我们最熟悉的一个关于线程并发的问题,如何做到多个售票窗口同时售票而不会导致将同一张票卖给多个旅客,首先很直观 的一点就是当我们把售票余量的增减弄成一个事务,如此一来在增减票余量的代码执行的时候只能允许一个线程操作也就是出票只能是总部出票,那么一个简易的模型就出来了。

  首先所有车票(虚拟票使用票号代替)都存放在总部,在总部只需完成接收售票点的出票请求来完成增减票余量并产生唯一票号分发给售票点,然后各售票点将票卖给旅客(所以这个模型的通俗的理解就是各个售票点代替旅客去售票总部排队申请出票,这样就不会出现同一张票卖给多个旅客),这也就是同步与互斥的一个案例吧。

  这里讲解一个使用Java实现这个案例的代码吧

  很明显这里各个售票点销售的都是售票总部的票余量,所以各个售票点需要共享票余量这个变量。因而我们可以创建一个售票窗口类

  

延伸阅读

学习是年轻人改变自己的最好方式-Java培训,做最负责任的教育,学习改变命运,软件学习,再就业,大学生如何就业,帮大学生找到好工作,lphotoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训学习是年轻人改变自己的最好方式

我想了解如何学习

姓名:
手机:
留言: