threadlocal 详解
2022/4/14 23:18:26
本文主要是介绍threadlocal 详解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
使用方法
ThreadLocal<String> localName = new ThreadLocal();
localName.set("test");
String name = localName.get();
localName.remove();
public void set(T value) { Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t); if (map != null) { map.set(this, value); } else { createMap(t, value); } } 可以看到set 把当前线程作为key 每个线程都会维护一个自己的threadlocal放在堆中并非栈中 key被设计成WeakReference弱引用了,弱引用在gc 的时候都会被回收 而value 没有释放的话,,比如线程池一直占有threadlocal变量会导致value无法被回收,内存泄漏,需要手工删除
map.remove();
这篇关于threadlocal 详解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26MATLAB 中 A(7)=[];什么意思?-icode9专业技术文章分享
- 2024-11-26UniApp 中如何实现使用输入法时保持页面列表不动的效果?-icode9专业技术文章分享
- 2024-11-26在 UniApp 中怎么实现输入法弹出时禁止页面向上滚动?-icode9专业技术文章分享
- 2024-11-26WebSocket是什么,怎么使用?-icode9专业技术文章分享
- 2024-11-26页面有多个ref 要动态传入怎么实现?-icode9专业技术文章分享
- 2024-11-26在 UniApp 中实现一个底部输入框的常见方法有哪些?-icode9专业技术文章分享
- 2024-11-26RocketMQ入门指南:搭建与使用全流程详解
- 2024-11-26RocketMQ入门教程:轻松搭建与使用指南
- 2024-11-26手写RocketMQ:从入门到实践的简单教程
- 2024-11-25【机器学习(二)】分类和回归任务-决策树(Decision Tree,DT)算法-Sentosa_DSML社区版