一、ThreadLocal的含义

线程的变量副本(就像命名一样),每个线程隔离。

二、ThreadLocal的结构

每个Thread都有自己的ThreadLocalMapThreadLocalMap的底层是使用数组;

其中每个Entry,它的key是ThreadLocal<?> k ,继承自WeakReference, 也就是我们常说的弱引用类型,可以简单地将它的key视作ThreadLocal,value为代码中放入的值(实际上key并不是ThreadLocal本身,而是它的一个弱引用)。

每个线程在往ThreadLocal里放值的时候,都会往自己的ThreadLocalMap里存,读也是以ThreadLocal作为引用,在自己的map里找对应的key,从而实现了线程隔离

最新文章

  1. 【实战Java高并发程序设计6】挑战无锁算法:无锁的Vector实现
  2. 初步了解yield_python
  3. 04 DOM一窥
  4. .net 根据匿名类生成实体类,根据datatable生成实体类,根据sql生成实体类
  5. JSP显示-下拉框
  6. JAVABEAN EJB POJO区别
  7. UI:转自互联网资料
  8. 如何解决VS启动越来越慢
  9. 不要在精确计算中使用float和double类型
  10. KoaHub.js:使用ES6/7特性开发Node.js框架
  11. mvn命令笔记
  12. leetCode:237 删除链表的结点
  13. 获取spring security用户相关信息
  14. Codeforces 870C Maximum splitting (贪心+找规律)
  15. Go VSCode配置编译task
  16. Linux开机执行指定shell
  17. Codeforces 488B - Candy Boxes
  18. 06-matplotlib-饼状图
  19. exception PLS-00403: expression &#39;V_END&#39; cannot be used as an INTO-target of a SELECT/FETCH statement
  20. Fragments (官方文档中文版)

热门文章

  1. Spring 自定义注解 操作日志
  2. Python安装及配置教程
  3. uni-app学习笔记之----目录认识
  4. Windows 11安装etcd
  5. (0319) SV 中的 iff 事件控制
  6. 幻方(4n+2暂时看不懂)
  7. (Fiddler)Fiddler 的相关操作
  8. Django的urls的配置
  9. JVM中类加载子系统
  10. centos7.4系统: redis配置密码