原文网址:Java多线程--ThreadLocal的原理_IT利刃出鞘的博客-CSDN博客
简介
说明
本文介绍Java的ThreadLocal的原理。
ThreadLocal是Java多线程常用的技术,也是Java后端面试中常见的问题。
ThreadLocal简介
ThreadLocal 的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。
ThreadLocal用法
要明白原理,先要知道用法。用法详见:Java多线程系列-ThreadLocal的用法(有实例) - 自学精灵
本文将最简用法贴出:
package com.example.a;
public class Demo {
static ThreadLocal<String> threadLocal = new ThreadLocal<>();
static void print(String str){
System.out.println(str + ":" + threadLocal.get());
}
public static void main(String[] args) {
Thread thread1 = new Thread(new Runnable() {
@Override
public void run() {
threadLocal.set("abc");
print("thread1 variable");
}
});
Thread thread2 = new Thread(new Runnable() {
@Override
public void run() {
threadLocal.set("def");
print("thread2 variable");
}
});
thread1.start();
thread2.start();
}
}
运行结果
thread1 variable:abc
thread2 variable:def
流程追踪
上边是文章的部分内容,为便于维护,全文已迁移到此网址:Java多线程系列-ThreadLocal的原理 - 自学精灵