-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进行测试? –