使用ThreadLocal来实现一个本地缓存详解编程语言

大家应该知道,用户从发起请求,到服务器响应的这个过程中,在服务器中是在一个线程中的。如果我们吧查询出来的对象放到这个线程自己的缓存中,到用户请求结束时,把这些东西清理掉,应该是一个不错的cache方案。

import java.util.HashMap; 
import java.util.Map; 
 
/** 
 * ThreadLocalCache 
 *  
 */ 
public class ThreadLocalCache { 
 
    /** 
     * 实例字段,每个线程一个store,每个线程生产一个{@code ThreadLocalCache} INSTANCE 
     */ 
    private final ThreadLocal<Map<Object, Object>> store; 
 
    public ThreadLocalCache() { 
        this.store = new ThreadLocal<Map<Object, Object>>() { 
            @Override 
            protected Map<Object, Object> initialValue() { 
                return new HashMap<Object, Object>(); 
            } 
        }; 
    } 
 
    public void put(Object key, Object value) { 
        store.get().put(key, value); 
    } 
 
    public Object get(Object key) { 
        return store.get().get(key); 
    } 
}

 

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/15909.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论