开发者社区 开发与运维 文章 正文 2023-10-17 6 简介: JUC第六讲:ThreadLocal/InheritableThreadLocal详解/TTL-MDC日志上下文实践 1.1、ThreadLocal的定义 这个类提供了线程局部变量,能使线程中的某个值与保存值的对象关联起来,例如:threadLocal.set(5),会将“threadLocal”和“5”作为键值对保存在该线程的threadLocals里。ThreadLocal提供了get与set等访问接口或方法,这些方法为每个使用该变量的线程都存有一份独立的副本(即每个线程的 threadLocals 属性),因此get操作总是返回由当前执行线程在调用set时设置的最新值。 只要线程处于活动状态并且Threadocal实例可以访问,每个线程就拥有对其线程局部变量副本的隐式引用;在一个线程消失之后,线程本地实例的所有副本都会被垃圾收集(除非存在对这些副本的其他引用)。 从上面的定义可以知道,ThreadLocal 的 hashcode(threadLocalHashCode)是从0开始,每新建一个...