Guava1.2——GuavaCache的RemoveListener分析

Guava Cache在put和get操作中如何触发并处理RemovalListener。put操作中,通过postWriteCleanup调用onRemoval。get操作中,当过期条目在preRead和postRead阶段处理,当readCount达到一定阈值时触发onRemoval。示例展示了如何创建带RemovalListener的Guava Cache并观察其行为。
摘要由CSDN通过智能技术生成

put操作


1.prewrite

void preWriteCleanup(long now)

void runLockedCleanup(long now)

void drainReferenceQueues()

void expireEntries(long now)

以上是准备工作,和get方法中的准备类似。

2.postwrite

void postWriteCleanup()

void runUnlockedCleanup();

// 该方法会把removalNotificationQueue中的元素清楚掉,并调用onRemoval方法

void processPendingNotifications(){
RemovalNotification<K, V> notification;
while ((notification = removalNotificationQueue.poll()) != null) {
try {
removalListener.onRemoval(notification);
} catch (Throwable e) {
logger.log(Level.WARNING, "Exception thrown by removal listene

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值