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 SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionvoidclear()Clear all items from this segment.<T> TdoTask(int hash, Object key, ConcurrentReferenceHashMap<K, V>.org.springframework.util.ConcurrentReferenceHashMap.Task<T> task) Apply an update operation to this segment.final intgetCount()Return the total number of references in this segment.getReference(Object key, int hash, ConcurrentReferenceHashMap.Restructure restructure) final intgetSize()Return the size of the current references array.protected final voidrestructureIfNecessary(boolean allowResize) Restructure the underlying data structure when it becomes necessary.Methods inherited from class java.util.concurrent.locks.ReentrantLockgetHoldCount, getOwner, getQueuedThreads, getQueueLength, getWaitingThreads, getWaitQueueLength, hasQueuedThread, hasQueuedThreads, hasWaiters, isFair, isHeldByCurrentThread, isLocked, lock, lockInterruptibly, newCondition, toString, tryLock, tryLock, unlock
- 
Constructor Details- 
Segmentpublic 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 key
- key- the key
- task- the update operation
- Returns:
- the result of the operation
 
- 
clearpublic void clear()Clear all items from this segment.
- 
restructureIfNecessaryprotected final void restructureIfNecessary(boolean allowResize) Restructure the underlying data structure when it becomes necessary. This method can increase the size of the references table as well as purge any references that have been garbage collected.- Parameters:
- allowResize- if resizing is permitted
 
- 
getSizepublic final int getSize()Return the size of the current references array.
- 
getCountpublic final int getCount()Return the total number of references in this segment.
 
-