多线程—ThreadLocal
2024-10-21 10:21:15
一、ThreadLocal的含义
线程的变量副本(就像命名一样),每个线程隔离。
二、ThreadLocal的结构
每个Thread都有自己的
ThreadLocalMap
,ThreadLocalMap
的底层是使用数组;
其中每个Entry
,它的key是ThreadLocal<?> k
,继承自WeakReference
, 也就是我们常说的弱引用类型,可以简单地将它的key视作ThreadLocal
,value为代码中放入的值(实际上key并不是ThreadLocal
本身,而是它的一个弱引用)。
每个线程在往ThreadLocal
里放值的时候,都会往自己的ThreadLocalMap
里存,读也是以ThreadLocal
作为引用,在自己的map里找对应的key,从而实现了线程隔离。
最新文章
- 【实战Java高并发程序设计6】挑战无锁算法:无锁的Vector实现
- 初步了解yield_python
- 04 DOM一窥
- .net 根据匿名类生成实体类,根据datatable生成实体类,根据sql生成实体类
- JSP显示-下拉框
- JAVABEAN EJB POJO区别
- UI:转自互联网资料
- 如何解决VS启动越来越慢
- 不要在精确计算中使用float和double类型
- KoaHub.js:使用ES6/7特性开发Node.js框架
- mvn命令笔记
- leetCode:237 删除链表的结点
- 获取spring security用户相关信息
- Codeforces 870C Maximum splitting (贪心+找规律)
- Go VSCode配置编译task
- Linux开机执行指定shell
- Codeforces 488B - Candy Boxes
- 06-matplotlib-饼状图
- exception PLS-00403: expression &#39;V_END&#39; cannot be used as an INTO-target of a SELECT/FETCH statement
- Fragments (官方文档中文版)