说说ThreadLocal

发布时间:2026/7/27 5:10:00

说说ThreadLocal 面试定义ThreadLocal 是 Java 提供的线程隔离工具让每个线程拥有独立的数据副本实现线程私有。每个 Thread 线程内部维护一个ThreadLocalMapThreadLocal 的静态内部类ThreadLocalMap 以 ThreadLocal 实例为 key弱引用、线程私有数据为 value通过set()/get()/remove()操作当前线程的 Map实现数据隔离。核心使用场景存储线程上下文如 Web 请求的用户信息、请求 ID解决非线程安全工具类问题如 SimpleDateFormat避免多线程下参数层层传递。内存泄漏风险 解决方案风险ThreadLocalMap 的 key 是弱引用ThreadLocal 被回收后value 因强引用无法释放线程长期存活时如线程池导致内存泄漏解决方案使用后必须调用remove()清理推荐 try-finally 确保执行。

相关新闻