-1
我已經從Web上採取了一些併發的LRU緩存實現,他們有HashMap和synchronized塊。我想要的是使用ConcurrentHashMap並避免(在可能的情況下)使用同步塊。我已經把ConcurrentHashMap而不是HashMap,並且一切都出錯了。線程在map.get(key)上退出。也許我的ConcurrentHashMap的參數需要自定義?具有複雜對象的ConcurrentHashMap
private ConcurrentHashMap<Object, LRUListEntry> map;
protected class LRUListEntry extends Object
{
LRUListEntry next;
LRUListEntry prev;
Object value;
Object key;
int hits;
final int penalty = -1;
public String toString()
{
return key + "=" + value;
}
public Object getKey()
{
return key;
}
public Object getValue()
{
return value;
}
}
你能更具體嗎?什麼地方出了錯? –
你沒有提供相關的代碼。它不是定義值類,它是地圖的用法 – Asaf
是原始實現,沒有使用ConcurrentHashMap進行測試? –