在 Guava Library 中,我很困惑为什么Cache.asMap()
不符合Cache.size()
,除非Cache.cleanUp()
被调用。
Cache<Object, Object> cache = CacheBuilder.newBuilder()
.expireAfterWrite(1, TimeUnit.SECONDS)
.build();
cache.get(...);
...
//After some seconds, all entries are expired.
//cache.asMap() is EMPTY Map, but cache.size() != 0
所以我的问题是:Cache.asMap()
是不是与 不一致的错误Cache.size()
?虽然我注意到的 javadocCache.size()
是:
/**
* Returns the **approximate** number of entries in this cache.
*/
我只能猜测它与并发环境有关。究竟是Cache.cleanUp()
做什么的?