Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想知道RemovalListenerGuava 缓存的 是否在已删除条目的键上同步。据我了解,Guava 缓存是建立在 a 之上的,如果我在同一个键上对SynchronizedHashMap缓存的方法进行两次调用,一个条目将不会被加载两次,因为调用在. 现在我想知道用户是否可以在 a仍在不同线程上运行其方法时调用。getSynchronizedHashMapgetRemovalListeneronRemoval(RemovalNotification)
RemovalListener
SynchronizedHashMap
get
onRemoval(RemovalNotification)
谢谢你的帮助!
Guava 缓存更像是ConcurrentHashMap,尽管它不是构建在 CHM 之上的;它涉及对整个事情的重写。
ConcurrentHashMap
也就是说,您的问题的答案是,如果一个条目正在由 a 处理RemovalListener,则它不再在缓存中,并且get查询将被视为该条目从未在缓存中:通过加载该条目的值从头开始的关键。