文章目录
一.线程隔离
当多线程访问时,通过将数据封闭在各自的线程中相互隔离,互不干扰的技术称为线程隔离,ThreadLocal
就是线程隔离的一种体现
二.ThreadLocal是什么
- ThreadLocal类提供了一种
线程局部变量(ThreadLocal)
,即每一个线程都会保存一份变量副本,每个线程都可以独立地修改自己的变量副本,而不会影响到其他线程
- ThreadLocal 变量通常被private static修饰,其中保存变量属于当前线程,该变量对其他线程而言是隔离的,当一个线程结束时,它所使用的所有 ThreadLocal 实例副本都可被回收。
- ThreadLocal 适用于变量在线程间隔离而在方法或类间共享的场景。
- ThreadLocal唯一的缺点就是:只能用于存储当前线程的变量。
子线程获取不到父线程的数据
(使用InheritableThreadLocals`可以解决)
三.ThreadLocal类提供的方法
方法 | 描述 |
---|