java.lang.Object
org.miaixz.bus.core.lang.thread.lock.Lock
锁相关类
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic SegmentLock<Lock> createLazySegmentLock(int segments) 创建弱引用分段锁,使用 ReentrantLock,懒加载static ReentrantReadWriteLockcreateReadWriteLock(boolean fair) static SegmentLock<Lock> createSegmentLock(int segments) 创建分段锁(强引用),使用 ReentrantLockstatic SegmentLock<ReadWriteLock> createSegmentReadWriteLock(int segments) 创建分段读写锁(强引用),使用 ReentrantReadWriteLockstatic SegmentLock<Semaphore> createSegmentSemaphore(int segments, int permits) 创建分段信号量(强引用)static StampedLock创建StampedLock锁static LockgetLazySegmentLock(int segments, Object key) 根据 key 获取弱引用分段锁,懒加载static NoLock获取单例的无锁对象static LockgetSegmentLock(int segments, Object key) 根据 key 获取分段锁(强引用)static LockgetSegmentReadLock(int segments, Object key) 根据 key 获取分段读锁(强引用)static SemaphoregetSegmentSemaphore(int segments, int permits, Object key) 根据 key 获取分段信号量(强引用)static LockgetSegmentWriteLock(int segments, Object key) 根据 key 获取分段写锁(强引用)
-
Constructor Details
-
Lock
public Lock()
-
-
Method Details
-
createStampLock
创建StampedLock锁- Returns:
StampedLock锁
-
createReadWriteLock
- Parameters:
fair- 是否公平锁- Returns:
ReentrantReadWriteLock锁
-
createSegmentLock
创建分段锁(强引用),使用 ReentrantLock- Parameters:
segments- 分段数量,必须大于 0- Returns:
- 分段锁实例
-
createSegmentReadWriteLock
创建分段读写锁(强引用),使用 ReentrantReadWriteLock- Parameters:
segments- 分段数量,必须大于 0- Returns:
- 分段读写锁实例
-
createSegmentSemaphore
创建分段信号量(强引用)- Parameters:
segments- 分段数量,必须大于 0permits- 每个信号量的许可数- Returns:
- 分段信号量实例
-
createLazySegmentLock
创建弱引用分段锁,使用 ReentrantLock,懒加载- Parameters:
segments- 分段数量,必须大于 0- Returns:
- 弱引用分段锁实例
-
getSegmentLock
根据 key 获取分段锁(强引用)- Parameters:
segments- 分段数量,必须大于 0key- 用于映射分段的 key- Returns:
- 对应的 Lock 实例
-
getSegmentReadLock
根据 key 获取分段读锁(强引用)- Parameters:
segments- 分段数量,必须大于 0key- 用于映射分段的 key- Returns:
- 对应的读锁实例
-
getSegmentWriteLock
根据 key 获取分段写锁(强引用)- Parameters:
segments- 分段数量,必须大于 0key- 用于映射分段的 key- Returns:
- 对应的写锁实例
-
getSegmentSemaphore
根据 key 获取分段信号量(强引用)- Parameters:
segments- 分段数量,必须大于 0permits- 每个信号量的许可数key- 用于映射分段的 key- Returns:
- 对应的 Semaphore 实例
-
getLazySegmentLock
根据 key 获取弱引用分段锁,懒加载- Parameters:
segments- 分段数量,必须大于 0key- 用于映射分段的 key- Returns:
- 对应的 Lock 实例
-
getNoLock
获取单例的无锁对象- Returns:
NoLock
-