java航空公司系统如何防止两个用户同时预订同一个座位? 5 月 Questions & Answers 623 如果两个用户试图同时预订同一个座位,只有一个会成功。这是如何实现的?我读过关于锁定的文章,但请进一步说明如何实现这一点。锁定代码(synchronized关键字)或锁定数据库行或约束DB或其他内容
# 1 楼答案 首先,两个人同时预订几乎是不可能的。即使他们在完全相同的时间点击预订按钮,他们也会在不同的时间点到达服务器(由于连接、距离等原因) 因此,这一事件极不可能发生。一种解决方案是,一旦有人点击一个座位并开始预订过程,就添加一个“预订”。这可以防止其他用户在当前有人预订同一座位时预订同一座位。如果对方没有预定座位,你可以再次“解锁” 例如,Eventbrite使用了类似的系统。只要你按下get ticket键,他们就会给你预定一张票。这样可以确保在你填写详细信息时没有人抢你的票
# 1 楼答案
首先,两个人同时预订几乎是不可能的。即使他们在完全相同的时间点击预订按钮,他们也会在不同的时间点到达服务器(由于连接、距离等原因)
因此,这一事件极不可能发生。一种解决方案是,一旦有人点击一个座位并开始预订过程,就添加一个“预订”。这可以防止其他用户在当前有人预订同一座位时预订同一座位。如果对方没有预定座位,你可以再次“解锁”
例如,Eventbrite使用了类似的系统。只要你按下
get ticket
键,他们就会给你预定一张票。这样可以确保在你填写详细信息时没有人抢你的票