1. 基本概念
- ThreadLocal: 提供线程局部变量,每个线程都有自己的变量副本。
- InheritableThreadLocal: 扩展了
ThreadLocal
,子线程可以继承父线程的变量值。
2. 使用场景
- 线程特定数据: 例如,数据库连接、用户会话信息等。
- 避免参数传递: 在方法调用链中传递数据时,可以使用
ThreadLocal
来避免显式传递参数。 - 性能优化: 减少线程间的数据共享和同步开销。
- 日志记录和上下文管理: 在复杂的系统中,可以使用
ThreadLocal
来管理日志上下文或请求上下文。
3. 基本用法
3.1 创建ThreadLocal变量
public class ThreadLocalExampl