Package org.jboss.modules
Class UnlockedReadHashMap<K,V>
java.lang.Object
java.util.AbstractMap<K,V>
org.jboss.modules.UnlockedReadHashMap<K,V>
- Type Parameters:
K
- the key typeV
- the value type
- All Implemented Interfaces:
ConcurrentMap<K,
,V> Map<K,
V>
A hash map that supports non-blocking, lockless read access.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate final class
private final class
private static final class
Nested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K,
V>, AbstractMap.SimpleImmutableEntry<K, V> -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final int
private static final float
private final float
private static final int
private int
private AtomicReferenceArray
<UnlockedReadHashMap.Item<K, V>[]> private int
private final Object
-
Constructor Summary
ConstructorsConstructorDescriptionUnlockedReadHashMap
(float loadFactor) UnlockedReadHashMap
(int initialCapacity) UnlockedReadHashMap
(int initialCapacity, float loadFactor) -
Method Summary
Modifier and TypeMethodDescriptionvoid
clear()
boolean
containsKey
(Object key) private static <K,
V> UnlockedReadHashMap.Item <K, V> doGet
(AtomicReferenceArray<UnlockedReadHashMap.Item<K, V>[]> table, Object key) private static <K,
V> UnlockedReadHashMap.Item <K, V> doGet
(UnlockedReadHashMap.Item<K, V>[] row, Object key) private static <K,
V> UnlockedReadHashMap.Item<K, V>[] doGetRow
(AtomicReferenceArray<UnlockedReadHashMap.Item<K, V>[]> table, int hc) private static <K,
V> UnlockedReadHashMap.Item<K, V>[] doGetRow
(AtomicReferenceArray<UnlockedReadHashMap.Item<K, V>[]> table, Object key) private V
doPut
(AtomicReferenceArray<UnlockedReadHashMap.Item<K, V>[]> table, K key, V value, boolean ifAbsent) entrySet()
private static <K,
V> int getIndex
(AtomicReferenceArray<UnlockedReadHashMap.Item<K, V>[]> table, Object key) putIfAbsent
(K key, V value) boolean
private static <K,
V> UnlockedReadHashMap.Item<K, V>[] remove
(UnlockedReadHashMap.Item<K, V>[] row, int idx) boolean
private void
resize()
int
size()
Methods inherited from class java.util.AbstractMap
clone, containsValue, equals, hashCode, isEmpty, keySet, putAll, toString, values
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.concurrent.ConcurrentMap
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, replaceAll
-
Field Details
-
DEFAULT_INITIAL_CAPACITY
private static final int DEFAULT_INITIAL_CAPACITY- See Also:
-
MAXIMUM_CAPACITY
private static final int MAXIMUM_CAPACITY- See Also:
-
DEFAULT_LOAD_FACTOR
private static final float DEFAULT_LOAD_FACTOR- See Also:
-
writeLock
-
entrySet
-
loadFactor
private final float loadFactor -
size
private volatile int size -
table
-
threshold
private int threshold
-
-
Constructor Details
-
UnlockedReadHashMap
UnlockedReadHashMap(int initialCapacity, float loadFactor) -
UnlockedReadHashMap
UnlockedReadHashMap(float loadFactor) -
UnlockedReadHashMap
UnlockedReadHashMap(int initialCapacity) -
UnlockedReadHashMap
UnlockedReadHashMap()
-
-
Method Details
-
resize
private void resize() -
doGet
private static <K,V> UnlockedReadHashMap.Item<K,V> doGet(AtomicReferenceArray<UnlockedReadHashMap.Item<K, V>[]> table, Object key) -
doGetRow
private static <K,V> UnlockedReadHashMap.Item<K,V>[] doGetRow(AtomicReferenceArray<UnlockedReadHashMap.Item<K, V>[]> table, Object key) -
getIndex
private static <K,V> int getIndex(AtomicReferenceArray<UnlockedReadHashMap.Item<K, V>[]> table, Object key) -
doGetRow
private static <K,V> UnlockedReadHashMap.Item<K,V>[] doGetRow(AtomicReferenceArray<UnlockedReadHashMap.Item<K, V>[]> table, int hc) -
doGet
private static <K,V> UnlockedReadHashMap.Item<K,V> doGet(UnlockedReadHashMap.Item<K, V>[] row, Object key) -
doPut
private V doPut(AtomicReferenceArray<UnlockedReadHashMap.Item<K, V>[]> table, K key, V value, boolean ifAbsent) -
remove
private static <K,V> UnlockedReadHashMap.Item<K,V>[] remove(UnlockedReadHashMap.Item<K, V>[] row, int idx) -
entrySet
-
size
public int size() -
containsKey
- Specified by:
containsKey
in interfaceMap<K,
V> - Overrides:
containsKey
in classAbstractMap<K,
V>
-
get
-
put
-
remove
-
clear
public void clear() -
putIfAbsent
- Specified by:
putIfAbsent
in interfaceConcurrentMap<K,
V> - Specified by:
putIfAbsent
in interfaceMap<K,
V>
-
remove
-
replace
-
replace
-