Java多线程之深入解析ThreadLocal和ThreadLocalMap
Java多线程之深入解析ThreadLocal和ThreadLocalMap ThreadLocal概述 ThreadLocal是线程变量,ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。 它具有3个特性: 线程并发:在多线程并发场景下使用。 传递数据:可以通过ThreadLocal在同一线程,不同组件中传递公共变量。 线程隔离:每个线程变量都是独立的,不会相互影响。 在不使用ThreadLocal的情况下,变量不隔离,得到的结果具有随机性。 public class Demo { private String variable; public String getVariable() { return variable; } public void setVariable(String variable) { this.variable = variable; } public static void main(String[] args) { Demo demo = new Demo(); for (int i = 0; i < 5; i++) { new Thread(()->{ demo.setVariable(Thread