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;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读