Class BoundedConcurrentHashMap.Segment<K,​V>

  • All Implemented Interfaces:
    Serializable, Lock
    Enclosing class:
    BoundedConcurrentHashMap<K,​V>

    static final class BoundedConcurrentHashMap.Segment<K,​V>
    extends ReentrantLock
    Segments are specialized versions of hash tables. This subclasses from ReentrantLock opportunistically, just to simplify some locking and avoid separate construction.
    • Field Detail

      • count

        transient volatile int count
        The number of elements in this segment's region.
      • modCount

        transient int modCount
        Number of updates that alter the size of the table. This is used during bulk-read methods to make sure they see a consistent snapshot: If modCounts change during a traversal of segments computing size or checking containsValue, then we might have an inconsistent view of state so (usually) must retry.
      • threshold

        transient int threshold
        The table is rehashed when its size exceeds this threshold. (The value of this field is always (int)(capacity * loadFactor).)
      • loadFactor

        final float loadFactor
        The load factor for the hash table. Even though this value is same for all segments, it is replicated to avoid needing links to outer object.
      • evictCap

        final int evictCap