1. 场景设计
在一个企业数据中台中,一个典型的线程锁业务场景是多个线程同时访问和更新共享资源。例如,一个企业可能有多个部门需要查询和更新库存信息。为了避免数据不一致和竞态条件,我们可以使用Java中的ReentrantReadWriteLock
来保护共享数据。
2. 代码落地
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
public class InventorySystem {
// 存储库存信息的 HashMap
private final Map<String, Integer> inventory;
// 用于保护共享数据的读写锁
private final ReadWriteLock lock;
public InventorySystem() {
inventory = new HashMap<>();
lock = new