1. AtomicHashArray中通过将key强制转型为std::atomic<KeyT>*来实现key的原子操作。
  2. 为了防止低廉操作,如通过stringpiece查找stringAtomicHashMap提供了转换函数容许提供可转换位key的查问参数,即便不是同一类型,也能够比拟二者是否相等。
  3. AtomicHashMap的插入操作:

    1. primary AtomicHashArray中插入
    2. 如果已满,调配sub map并插入
  4. 底层调配策略:

    //   if subMap == 0 (primary map) =>//     bit(s)          value//         31              0//       0-30  submap offset (index_ret input)////   if subMap > 0 (secondary maps) =>//     bit(s)          value//         31              1//      27-30   which subMap//       0-26  subMap offset (index_ret input)

    底层调配是1个primary map + N个sub map

    总和容量实际上是和2个primary map统一的,为了防止内存节约,通过溢出时再调配多个sub map去防止不必要的内存节约。