page contents

ThreadLocal 是什么?有哪些使用场景?

小柒 发布于 2022-10-20 11:46
阅读 577
收藏 0
分类:高并发架构
4345
王昭君
王昭君
ThreadLocal 是一个本地线程副本变量工具类,在每个线程中都创建
了一个 ThreadLocalMap 对象,简单说 ThreadLocal 就是一种以空
间换时间的做法,每个线程可以访问自己内部 ThreadLocalMap 对象
内的 value。通过这种方式,避免资源在多线程间共享。
原理:线程局部变量是局限于线程内部的变量,属于线程自身所有,
不在多个线程间共享。Java 提供 ThreadLocal 类来支持线程局部变
量,是一种实现线程安全的方式。但是在管理环境下(如 web 服务器)使用线程局部变量的时候要特别小心,在这种情况下,工作线程
的生命周期比任何应用变量的生命周期都要长。任何线程局部变量一
旦在工作完成后没有释放,Java 应用就存在内存泄露的风险。
请先 登录 后评论