1.threadlocal对象为线程提供变量的副本,该副本为线程私有的,其它线程访问不到;

2.变量的副本存储在ThreadLocalMap对象中;

3.使用threadlocal时候,最好先使用initialValue protected,或者set方法设置初始值,否则get方法取出来的是null;

在多线程情况下存在内存泄漏问题:

4.threadlocalmap中保存的entry,key是弱引用,当把threadLocal实例置为null以后,没有任何强引用指向threadLocal实例,所以threadLocal将会被gc回收,但是value却不能被回收,因为其还存在于ThreadLocal.ThreadLocalMap的对象的Entry之中,只有当前Thread结束之后,所有与当前线程有关的资源才会被GC回收。如果在线程池中使用ThreadLocal,由于线程会复用,而又没有显示的调用remove的话的确是会有可能发生内存泄露的问题。

5.get/set expungeStaleEntry

最新文章

  1. CharSequence cannot be resolved. It is indirectly referenced from required .class files
  2. iOS8后core location框架启动定位服务的步骤
  3. 计算第k个质因数只能为3,5,7的数
  4. 使用percona-xtrabackup实现对线上zabbix监控系统数据库mariadb5.5.47的主从同步
  5. C语言第3天标准的输入输出函数
  6. Hibernae 的延迟加载
  7. Struts2 Package
  8. c/c++强制类型转换
  9. Mysql 创建联合主键
  10. JS中将一个值转换为字符串的3种方法
  11. java1.8版本的HashMap源码剖析
  12. Springboot 系列(十二)使用 Mybatis 集成 pagehelper 分页插件和 mapper 插件
  13. 下拉框 JComboBox,文本框JTextField
  14. MySQL线程处于Waiting for table flush的分析
  15. mysqldump命令之常用模板
  16. (转)Memcache内存分配策略
  17. Jetty学习四:部署到Jetty
  18. 使用putty部署远程J2EE环境
  19. 审计系统---堡垒机python下ssh的使用
  20. EMGU 2.9.X在VS2010下调试真正靠谱的配置

热门文章

  1. SVG 2D入门11 - 动画
  2. C++虚函数示例
  3. 网页版电子表格控件tmlxSpreadsheet免费下载地址
  4. Nested List Weight Sum -- LeetCode 339
  5. (实用篇)php通过会话控制实现身份验证实例
  6. Thrift 个人实战--Thrift 网络服务模型
  7. LintCode Binary Tree Preorder Traversal
  8. uget和aria2
  9. 关于char类型的连续输入
  10. 【学习笔记】Oracle-1.安装及配置