Java并发之ThreadLocal和InheritableThreadLoacal
来源:互联网 发布:淘宝网中老年冬季服装 编辑:程序博客网 时间:2024/05/20 04:09
Java可用ThreadLocal的set方法存储当前Thread的一些私有变量或数据,实现原理即为将当前Thread对象做为key,调用set方法,将value存入map对象中,get时根据当前Thread对象取到对应的value值,因此各个Thread只能取到自己的value。
而InHeritableThreadLocal可以取到父Thread中的值,主要原因是因为在new Thread时,会调用初始化方法init,在init方法中会判断当前Thread是否有Parent Thread,如果有,则将其inheritableThreadLocals中的对象复制到当前Thread的InHeritableThreadLocal对象中,注意这里复制是指针地址复制. 如下所示:
因此InHeritableThreadLocal可以访问到父Thread的InHeritableThreadLocal里的值;
但父Thread设置InHeritableThreadLocal时,一定要在创建子Thread之前设置,如果在new Thread之后再进行InHeritableThreadLocal的set,则子Thread仍然无法取到对应的父Thread的值;
阅读全文
0 0
- Java并发之ThreadLocal和InheritableThreadLoacal
- java并发之ThreadLocal
- Java并发之ThreadLocal
- java并发之ThreadLocal
- JAVA并发学习之ThreadLocal
- java多线程并发控制之ThreadLocal
- Java并发编程之ThreadLocal类详解
- Java并发编程实践之ThreadLocal变量
- java多线程并发控制之ThreadLocal
- JAVA并发--ThreadLocal学习之路
- Java并发编程之ThreadLocal详解
- JAVA并发-内置锁和ThreadLocal
- 并发编程之ThreadLocal
- 并发编程之ThreadLocal
- 并发之ThreadLocal
- Java并发 : ThreadLocal
- Java并发编程-ThreadLocal
- Java并发 ThreadLocal
- python安装scipy数次失败,之后安装Anaconda后使用sublime切换python解释器后解决pip无法安装scipy问题
- Java本地时间与GMT时间的转换
- 谈谈对Spring IOC的理解
- caffe finetuning
- JdbcTemplate简介
- Java并发之ThreadLocal和InheritableThreadLoacal
- 关于RecyclerView的Adapter封装
- 深入Hadoop之HDFS
- Java-Excel报表开发POI(含POI保护工作表功能)
- PowerShellGet系列(一):PowerShell的最佳管理能手
- Python *args *kwargs
- 第三章 JavaScript 变量、数据类型、对象
- 【Spring】
- 66. Plus One