1, checkStatus(): if (!status.equals(Status.STATUS_ALIVE))
2, element.resetAccessStatistics():
lastAccessTime = 0;
nextToLastAccessTime = 0;
hitCount = 0;
怎么把一个element里的这些信息都给置成了0?
3, elementExists = isElementInMemory(key) || isElementOnDisk(key);
判断要put进来的element是否已存在. 为什么不分是Memory和Disk呢?
Memory中用了Map来模拟内存,
disk判断时: diskElements.containsKey(key) || spool.containsKey(key).
private Map diskElements = Collections.synchronizedMap(new HashMap());
private Map spool = new HashMap();
怎么一点也看不出与disk相关的信息: 如,IO,stream等.
4, backOffIfDiskSpoolFull
看来这个方法里并不真正做back? 那么真正的backOff是在什么方法里做的?
5, 真正的put
怎么类MemoryStore里的doPut方法是空的?
7, registeredEventListeners.notifyElementXXX方法:
这些监听是怎么设置的?
Ehcache(五): cache.put(element)做了些什么?
最新推荐文章于 2023-12-28 13:21:31 发布
本文探讨了缓存管理中的元素状态重置方法、元素存在性的判断逻辑、磁盘缓存满时的处理策略及监听通知机制。分析了具体代码实现,并提出了疑问。
2242

被折叠的 条评论
为什么被折叠?



