番石榴文件说
https://guava.dev/releases/16.0/api/docs/com/google/common/cache/CacheBuilder.html#initialCapacity(int)
设置内部哈希表的最小总大小。例如,
如果初始容量为60,并且并发级别为8,则
创建八个段,每个段都有一个大小为八的哈希表。
在施工时提供足够大的估计,避免了需要
以便稍后进行昂贵的调整大小操作,但请设置此值
不必要的高浪费内存。
那么,如果要使用8行创建8个表,使用initialCapacity
有什么意义呢?这是一些文档输入错误吗?
最佳答案
在后台,Guava的高速缓存实现为多个哈希表,每个哈希表都有一个专用锁,因此并发写入不会在单个锁上发生争用。initialCapacity
是指整个缓存的容量,而不是每个单独的基础表的容量。每个大小为8的8个表最多可以处理64个元素,因此文档是正确的。