package net.lamgc.cgj.util; import java.util.HashMap; public class LockerMap { private final HashMap> lockerHashMap = new HashMap<>(); /** * 创建锁 * @param key Key * @return 如果Key所属锁存在, 则返回对应锁, 否则返回新锁 */ public Locker createLocker(K key, boolean autoDestroy) { if(lockerHashMap.containsKey(key)) { return lockerHashMap.get(key); } Locker newLocker = new Locker<>(this, key, autoDestroy); lockerHashMap.put(key, newLocker); return newLocker; } /** * 销毁锁 * @param locker 锁对象 */ public void destroyLocker(Locker locker) { lockerHashMap.remove(locker.getKey()); } }