百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
返回工具页/返回 Issues 列表
#177·awesome-low-level-design

停车场-LLD

作者: VishnuBhaarath创建于 2025年12月25日更新于 2026年6月27日

在 parkingLot.java 中,public Optional<ParkingTicket> parkVehicle(Vehicle vehicle) { Optional<ParkingSpot> availableSpot = parkingStrategy.findSpot(floors, vehicle); 如果 availableSpot 存在,则 ParkingSpot 为 spot,spot.parkVehicle(vehicle); ParkingTicket 为 ticket,activeTickets 将 vehicle 的牌照号码与 ticket 映射到一起;System.out.printf("%s parked at %s. Ticket: %s\n", vehicle.getLicenseNumber(), spot.getSpotId(), ticket.getTicketId()); 返回 ticket。 如果 availableSpot 不存在,则 System.out.println("No available spot for " + vehicle.getLicenseNumber()); 返回 Optional.empty()。 那么上述代码块是否会产生竞争条件? 线程 A → findSpot() → 位置 S1(可用) 线程 B → findSpot() → 位置 S1(仍可用) 线程 A → spot.parkVehicle() → 占用 S1 线程 B → spot.parkVehicle() → 覆盖

内容来源: ashishps1/awesome-low-level-design

查看 GitHub 原文在 GitHub 查看讨论