guava cache深入了解

2021-08-09 20:43:16 字數 841 閱讀 4599

以下基於cacheloader方式:

1.定時過期:expireafterwrite

2.定時重新整理:refreshafterwrite + 過載reload

3.定時非同步重新整理:refreshafterwrite + 過載reload + 執行緒池

共同點:

當key=null或expire時,都會加鎖,並且以同步方式呼叫load方法載入資料。

不同點:

當key存活於cache中,過了重新整理周期後,當有執行緒訪問資料某key的資料時,會以同步或非同步的方式呼叫reload方法載入資料,在載入資料的過程中,如果有請求過來需要獲取該key的資料,此時,返回oldvalue,並不會觸發reload方法呼叫。

**分析:

v get(k key, int hash, cacheloader<? super k, v> loader) throws executionexception 

valuereferencevaluereference = e.getvaluereference();

if (valuereference.isloading()) }}

// at this point e is either null or expired;//key=null或者過期時,同步載入資料

return lockedgetorload(key, hash, loader);

} catch (executionexception ee) else if (cause instanceof runtimeexception)

throw ee;

} finally

}

深入了解A

一 前言 在這裡我將對a 演算法的實際應用進行一定的 並且舉乙個有關a 演算法在最短路徑搜尋的例子。值得注意的是這裡並不對a 的基本的概念作介紹,如果你還對a 演算法不清楚的話,請看姊妹篇 初識a 演算法 這裡所舉的例子是參考amit主頁中的乙個源程式,使用這個源程式時,應該遵守一定的公約。二 a ...

深入了解A

一 前言 在這裡我將對a 演算法的實際應用進行一定的 並且舉乙個有關a 演算法在最短路徑搜尋的例子。值得注意的是這裡並不對a 的基本的概念作介紹,如果你還對a 演算法不清楚的話,請看姊妹篇 初識a 演算法 這裡所舉的例子是參考amit主頁中的乙個源程式,使用這個源程式時,應該遵守一定的公約。二 a ...

深入了解Dojo Data

譯自http www.sitepen.com blog 2010 10 13 dive into dojo data 使用dojo data有助於快速建立web應用的介面,且易於嵌入各種資料來源。它在使用者介面與底層資料之間提供了一層抽象層,使得使用者介面開發人員能夠專注於ui的開發,而無需擔心資料...