java线程安全缓存的实现

就这么一个小功能,保不齐有很多人都写不好,如下是一个best practice

public class Cache {
    Map cache = new ConcurrentHashMap();
    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;
    }
}

你可能感兴趣的:(java线程安全缓存的实现)