在Java中的ConcurrentHashMap中,锁的数量是否可能大于桶的数量?

时间:2016-09-28 13:16:33

标签: java multithreading locking concurrenthashmap

正如我们所知,java的ConcurrentHashMap有许多内部锁,每个内部锁都保护存储桶数组的某些区域。

public ConcurrentHashMap(int initialCapacity,                          loat loadFactor,                          int concurrencyLevel)

initialCapacity:16; loadFactory:0.75f; concurrencyLevel:16。

即默认concurrencyLevel和initialCapacity相同。

可能有更多没有。锁比没有。水桶?

1 个答案:

答案 0 :(得分:0)

不,CHM使用每个桶作为锁(在Java 7之前,每个桶都是ReentrantLock,现在每个桶都将synchronized。所以根据定义,不能有更多的锁。