子线程可以使用父线程的值,ThreadLocal不可以

无初始值

    private static final ThreadLocal<String> TL = new ThreadLocal<>();private static final InheritableThreadLocal<String> ITL = new InheritableThreadLocal<>();public static void main(String[] args) throws InterruptedException {TL.set("tl");ITL.set("itl");new Thread(() -> {System.out.println(TL.get());System.out.println(ITL.get());}).start();}

null
itl

有初始值

    private static final ThreadLocal<String> TL = ThreadLocal.withInitial(() -> "tl");private static final InheritableThreadLocal<String> ITL = new InheritableThreadLocal<String>() {@Overrideprotected String initialValue() {return "itl";}};public static void main(String[] args) throws InterruptedException {new Thread(() -> {System.out.println(TL.get());System.out.println(ITL.get());}).start();Thread.sleep(1000);TL.set("tl2");ITL.set("itl2");new Thread(() -> {System.out.println(TL.get());System.out.println(ITL.get());}).start();}

tl
itl
tl
itl2

当tl中没有值时,返回默认值。
ThreadLocal不复制到子线程,所以没有值

InheritableThreadLocal使用相关推荐

  1. 每日一博 - ThreadLocal VS InheritableThreadLocal VS TransmittableThreadLocal

    文章目录 ThreadLocal 核心API ThreadLocal类 源码分析 set get remove 缺陷 InheritableThreadLocal 源码解析 局限性 Transmitt ...

  2. Java 多线程:InheritableThreadLocal 实现原理

    前言 介绍 InheritableThreadLocal 之前,假设对 ThreadLocal 已经有了一定的理解,比如基本概念,原理,如果没有,可以参考:Java 多线程:threadlocal关键 ...

  3. java线程之InheritableThreadLocal

    ThreadLocal和InheritableThreadLocal区别,可以用代码测试一下: [java] view plain copy package com.lang; import juni ...

  4. ThreadLocal 和 InheritableThreadLocal

    在学习ThreadLocal之前,建议先了解Java中的4种引用 一.先看一下Thread,ThreadMap,ThreadLocal的关系 Thread中持有一个ThreadLocalMap ,这里 ...

  5. ThreadLoacl,InheritableThreadLocal,原理,以及配合线程池使用的一些坑

    虽然使用AOP可以获取方法签名,但是如果要获取方法中计算得出的数据,那么就得使用ThreadLocal,如果还涉及父线程,那么可以选择InheritableThreadLocal. 注意:理解一些原理 ...

  6. TransmittableThreadLocal 解决 线程池线程复用 无法复制 InheritableThreadLocal 的问题

    ThreadLoacl,InheritableThreadLocal,原理,以及配合线程池使用的一些坑 TransmittableThreadLocal 原理 之前为了能让InheritableThr ...

  7. TransmittableThreadLocal 解决 线程池线程复用 无法复制 InheritableThreadLocal 的问题.

    ThreadLoacl,InheritableThreadLocal,原理,以及配合线程池使用的一些坑 TransmittableThreadLocal 原理 之前为了能让InheritableThr ...

  8. 什么时候使用 InheritableThreadLocal

    一.ThreadLocal 在父子线程传递的问题 public class InheritableThreadLocalDemo {// 全局变量 // static ThreadLocal<S ...

  9. ThreadLocal系列(二)-InheritableThreadLocal的使用及原理解析

    ThreadLocal系列之InheritableThreadLocal的使用及原理解析(源码基于java8) 上一篇:ThreadLocal系列(一)-ThreadLocal的使用及原理解析 下一篇 ...

  10. ThreadLocal和InheritableThreadLocal使用

    InheritableThreadLocal代码 public class InheritableThreadLocal<T> extends ThreadLocal<T> { ...

最新文章

  1. 机器学习笔记(五)续——朴素贝叶斯算法的后验概率最大化含义
  2. 2018年ML/AI重大进展有哪些?LeCun推荐了这篇回答
  3. caffe运行问题(持续更新),sublime设置
  4. tensorflow之variables_to_restore
  5. 目标检测M2Det论文总结
  6. Linux大实验 (图书管理系统)
  7. 计算机设备财产登记册,幼儿园财产登记制度
  8. protel 99se交互式布局
  9. 企业公众号运营的五大误区,你中招了吗?
  10. 【WSL2】ubuntu22.04 安装docker
  11. vscode - 史上最优秀的 IDE ?
  12. 男人的最高品位在于选择女人
  13. Android输入法方法,Android的输入法系统框架原理
  14. NC WebService开发参考
  15. 最新发布 Debian 系统的详细安装过程
  16. n维椭球体积公式_2020中考物理知识汇总:公式大全
  17. 【考试】职称英语考试那些事儿
  18. linux查进程位置的命令
  19. 视觉SLAM常见面试题 (下)
  20. 快钱 大数据改变第三方支付

热门文章

  1. Swiper插件的基本使用方法和案例
  2. vivo手机充电慢耗电快
  3. 你们一般持有几支基金?怎么管理的?
  4. 一次性补缴17万元办社保,每月可以领1400多,可否办理?
  5. 天燃气与电热水器哪个用着成本低?
  6. 银行存款都有哪些误区,你都有踩坑吗?
  7. 是什么在主宰着我们自身的行动?
  8. 领导秘书,一般都是什么样的人?
  9. OpenStack 是什么
  10. 满足ThreadLocal目的