我是 Java 世界的新手,我在探索 ConcurrentHashMap API 时发现了这一点:
static final int DEFAULT_INITIAL_CAPACITY = 16;
static final float DEFAULT_LOAD_FACTOR = 0.75F;
static final int DEFAULT_CONCURRENCY_LEVEL = 16;
static final int MAXIMUM_CAPACITY = 1073741824;
static final int MAX_SEGMENTS = 65536;
static final int RETRIES_BEFORE_LOCK = 2;
final Segment<K, V>[] segments;
final Segment<K, V> segmentFor(int paramInt)
{
return this.segments[(paramInt >>> this.segmentShift & this.segmentMask)];
}
ConcurrentHashMap 中分段的基本原理是什么以及为什么使用它?请提供有关细分概念的更多建议。
并发哈希映射将其内容分为段,以减少写入器锁争用。
The concurrencyLevel
参数定义段数。默认为 16。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)