关注
今天发帖数达上限了,这里补充下自己实现的ThreadLocal
先看下ThreadLocal的API
public void set(T value) 将值放入线程局部变量
public T get() 从线程局部变量获取值
public void remove() 从线程局部变量移除值,JVM垃圾回收
protected T initialValue() 返回线程局部变量中的初始值,默认为null
其实仔细想想,ThreadLocal其实就是封装了Map
废话不多说,上代码
public class MyThreadLocal<T>{
//Collections.synchronizedMap同步
private Map<Thread,T> container=Collections.synchronizedMap(new HashMap<Thread,T>());
//设置值
public void set(T value){
container.put(Thread.currentThread(),value);
}
//获取值
public T get(){
Thread thread=Thread.currentThread();
T value=container.get(thread);
if(value==null && !container.containsKey(thread)){
value=initialValue();
container.put(thread,value);
}
return value;
}
//移除
public void remove(){
container.remove(Thread.currentThread());
}
//默认值
protected T initialValue(){
return null;
}
}
手酸了~下次再写了...
查看原帖
点赞 评论
相关推荐

点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 26届秋招公司红黑榜 #
6787次浏览 22人参与
# 实习必须要去大厂吗? #
145272次浏览 1530人参与
# 平安产险科技校招 #
2145次浏览 0人参与
# 校招泡的最久的公司是哪家? #
2553次浏览 13人参与
# 度小满求职进展汇总 #
8892次浏览 48人参与
# 你的mentor是什么样的人? #
1649次浏览 9人参与
# 智慧芽求职进展汇总 #
13304次浏览 94人参与
# 你觉得mentor喜欢什么样的实习生 #
7307次浏览 229人参与
# 职场新人体验 #
92776次浏览 636人参与
# 没有家庭托举的我是怎么找工作的 #
9103次浏览 140人参与
# 入职第一天,你准备什么时候下班 #
84907次浏览 465人参与
# 技术岗笔试题求解 #
95015次浏览 1101人参与
# 从哪些方向判断这个offer值不值得去? #
4642次浏览 80人参与
# 求职低谷期你是怎么度过的 #
3774次浏览 74人参与
# 最难的技术面是哪家公司? #
54360次浏览 891人参与
# 秋招想进国企该如何准备 #
97262次浏览 487人参与
# 面试紧张时你会有什么表现? #
932次浏览 18人参与
# 机械人的工作环境真的很差吗 #
24444次浏览 119人参与
# 你有哪些缓解焦虑的方法? #
36794次浏览 835人参与
# 跳槽时有那些注意事项 #
105709次浏览 567人参与
# 独居后,你的生活是更好了还是更差了? #
27736次浏览 263人参与
# 工作压力大怎么缓解 #
117307次浏览 1108人参与