java线程安全缓存的实现
2019-01-14 本文已影响0人
阿福德
就这么一个小功能,保不齐有很多人都写不好,如下是一个best practice
public class Cache {
Map<Object, Object> cache = new ConcurrentHashMap<Object, Object>();
public Object get(Object key) {
Object value = cache.get(key);
if(value == null) {
synchronized (cache) {
value = cache.get(key);
if(value == null) {
value = load(key);
cache.put(key, value);
}
}
}
return value;
}
}