Package org.springframework.util
Class ConcurrentReferenceHashMap.Segment
java.lang.Object
java.util.concurrent.locks.ReentrantLock
org.springframework.util.ConcurrentReferenceHashMap.Segment
- All Implemented Interfaces:
Serializable
,Lock
- Enclosing class:
- ConcurrentReferenceHashMap<K,
V>
A single segment used to divide the map to allow better concurrent performance.
- See Also:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
clear()
Clear all items from this segment.<T> T
doTask
(int hash, Object key, ConcurrentReferenceHashMap<K, V>.org.springframework.util.ConcurrentReferenceHashMap.Task<T> task) Apply an update operation to this segment.int
getCount()
Return the total number of references in this segment.getReference
(Object key, int hash, ConcurrentReferenceHashMap.Restructure restructure) int
getSize()
Return the size of the current references array.Methods inherited from class java.util.concurrent.locks.ReentrantLock
getHoldCount, getOwner, getQueuedThreads, getQueueLength, getWaitingThreads, getWaitQueueLength, hasQueuedThread, hasQueuedThreads, hasWaiters, isFair, isHeldByCurrentThread, isLocked, lock, lockInterruptibly, newCondition, toString, tryLock, tryLock, unlock
-
Constructor Details
-
Segment
public Segment(int initialSize, int resizeThreshold)
-
-
Method Details
-
getReference
@Nullable public ConcurrentReferenceHashMap.Reference<K,V> getReference(@Nullable Object key, int hash, ConcurrentReferenceHashMap.Restructure restructure) -
doTask
@Nullable public <T> T doTask(int hash, @Nullable Object key, ConcurrentReferenceHashMap<K, V>.org.springframework.util.ConcurrentReferenceHashMap.Task<T> task) Apply an update operation to this segment. The segment will be locked during the update.- Parameters:
hash
- the hash of the keykey
- the keytask
- the update operation- Returns:
- the result of the operation
-
clear
public void clear()Clear all items from this segment. -
getSize
public int getSize()Return the size of the current references array. -
getCount
public int getCount()Return the total number of references in this segment.
-