Class SafeConcurrentHashMap<K,V>

java.lang.Object
java.util.AbstractMap<K,V>
java.util.concurrent.ConcurrentHashMap<K,V>
org.miaixz.bus.core.center.map.concurrent.SafeConcurrentHashMap<K,V>
Type Parameters:
K - 键类型
V - 值类型
All Implemented Interfaces:
Serializable, ConcurrentMap<K,V>, Map<K,V>

public class SafeConcurrentHashMap<K,V> extends ConcurrentHashMap<K,V>
安全的ConcurrentHashMap实现 此类用于解决在JDK8中调用ConcurrentHashMap.computeIfAbsent(Object, Function)可能造成的死循环问题。

相关bug见:@see https://bugs.openjdk.java.net/browse/JDK-8161372

Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Constructor Details

    • SafeConcurrentHashMap

      public SafeConcurrentHashMap()
      构造,默认初始大小(16)
    • SafeConcurrentHashMap

      public SafeConcurrentHashMap(int initialCapacity)
      构造
      Parameters:
      initialCapacity - 预估初始大小
    • SafeConcurrentHashMap

      public SafeConcurrentHashMap(Map<? extends K,? extends V> m)
      构造
      Parameters:
      m - 初始键值对
    • SafeConcurrentHashMap

      public SafeConcurrentHashMap(int initialCapacity, float loadFactor)
      构造
      Parameters:
      initialCapacity - 初始容量
      loadFactor - 增长系数
    • SafeConcurrentHashMap

      public SafeConcurrentHashMap(int initialCapacity, float loadFactor, int concurrencyLevel)
      构造
      Parameters:
      initialCapacity - 初始容量
      loadFactor - 增长系数
      concurrencyLevel - 并发级别,即Segment的个数
  • Method Details