使用ThreadLocal来实现一个本地缓存
Posted FrankYou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用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); } }
以上是关于使用ThreadLocal来实现一个本地缓存的主要内容,如果未能解决你的问题,请参考以下文章