2

我想知道RemovalListenerGuava 缓存的 是否在已删除条目的键上同步。据我了解,Guava 缓存是建立在 a 之上的,如果我在同一个键上对SynchronizedHashMap缓存的方法进行两次调用,一个条目将不会被加载两次,因为调用在. 现在我想知道用户是否可以在 a仍在不同线程上运行其方法时调用。getSynchronizedHashMapgetRemovalListeneronRemoval(RemovalNotification)

谢谢你的帮助!

4

1 回答 1

3

Guava 缓存更像是ConcurrentHashMap,尽管它不是构建在 CHM 之上的;它涉及对整个事情的重写。

也就是说,您的问题的答案是,如果一个条目正在由 a 处理RemovalListener,则它不再在缓存中,并且get查询将被视为该条目从未在缓存中:通过加载该条目的值从头开始的关键。

于 2013-07-16T17:54:23.547 回答