Segment 数组的大小 size 是由 concurrentLevel 来决定的,但是却不一定等于
concurrentLevel,size 一定是大于或等于 concurrentLevel 的最小的 2 的次幂。比如:默认情况下
concurrentLevel 是 16,则 size 为 16;若 concurrentLevel 为 14,size 为 16;若 concurrentLevel 为17,则 size 为 32。为什么 Segment 的数组大小一定是 2 的次幂?其实主要是便于通过按位与的散列算法来定位 Segment 的 index。 |
|