java ThreadLocal的对象存储和获取
作者:互联网
2022-05-25

对象的保存问题,一直是我们在做程序研究时所关心的。在ThreadLocal中也有着同样的操作,我们可以将对象进行存储和获取。这需要对ThreadLocal的知识有一定的了解,而且用到了其中的set方法。下面我们就ThreadLocal的存储和获取进行完整的操作步骤讲解,具体内容分享给大家。
1、ThreadLocal的set方法
public void set(T value) {
Thread t = Thread.currentThread();
ThreadLocalMap map = getMap(t);
if (map != null)
map.set(this, value);
else
createMap(t, value);
}通过ThreadLocal的set方法看出,ThreadLocalMap的
2、ThreadLocal本身不存储值,在使用中,ThreadLocal是作为一个key,从ThreadLocalMap获取值,从ThreadLocal的get方法中也可以看出来:
public T get() {
Thread t = Thread.currentThread();
ThreadLocalMap map = getMap(t);
if (map != null) {
ThreadLocalMap.Entry e = map.getEntry(this);
if (e != null) {
@SuppressWarnings("unchecked")
T result = (T)e.value;
return result;
}
}
return setInitialValue();
}以上就是java ThreadLocal的对象存储和获取,关键在于掌握其中set的使用。大家如果对于这种方法还不够熟练,一定要在课后多加练习。
相关标签:
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
ReentrantReadWriteLock、ReentrantLock、synchronized 对比
MySQL性能优化的天花板:10条你必须掌握的顶级SQL分析技巧
大V说’AI替代不了你’,但现实是——用AI的人正在替代你
手写 Spring AI Agent:让大模型自主规划任务,ReAct 模式全流程拆解
一文讲透单点登录原理(SSO):从同域共享到跨域票据
【SpringAIAlibaba新手村系列】(18)Agent 智能体与今日菜单应用
CompletableFuture 异步编程全解:核心能力、编排方案、异常处理与超时控制
【从0到1构建一个ClaudeAgent】规划与协调-技能
Spring AI Advisors:从链式增强到递归顾问
ReentrantLock 与 synchronized对比
AI精选
