Guava缓存的RemovalListener是同步的吗?

时间:2013-07-16 16:03:01

标签: java guava

我想知道Guava缓存的RemovalListener是否在已删除条目的密钥上同步。据我所知,Guava缓存建立在SynchronizedHashMap之上,如果我在同一个密钥上对缓存的get方法进行两次调用,则该条目将不会被加载两次同步SynchronizedHashMap的相同序列。现在我想知道用户是否可以在get仍然在其他线程上运行其RemovalListener方法时调用onRemoval(RemovalNotification)

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

Guava缓存更像是ConcurrentHashMap,虽然它不是“在CHM之上”构建的;它涉及重写整个事物。

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