【发布时间】:2014-09-12 09:49:01
【问题描述】:
您好,我知道在 JDK 8 之前 ConcurrentHashMap 的工作原理。
我也理解了代码:它非常模块化,并不难理解。
JDK 8 中ConcurrentHashMap 的代码与之前的实现相比发生了很大变化。
由于这个问题被归类为过于宽泛,我现在将尝试非常具体。
CHMv8 使用 TreeBin(RedBlackTree 的变体)而不是链表来存储桶。
所以我的问题是使用 TreeBin 而不是链表的主要优势是什么?
【问题讨论】:
-
首先,只有大约 3k 行代码。
-
除此之外,6K 行代码从什么时候开始“庞大”?
-
@HotLicks 6KLOC 是一个非常可怕的单一课程。 CHM 因包含一堆嵌套类而有所松懈。
-
@DaveNewton 我认为 OP 还计算了 6k 总数中的 cmets + javadoc
-
@dkatzel 显然,但它们不会增加代码的复杂性。这不是 6KLoC。
标签: java multithreading concurrency java.util.concurrent concurrenthashmap