Introduction
基本概念和用途就先不写了,以后有兴趣再补。
简单提一下如何实现的:就是维护一个 map,key 是线程 id,每次从 map 中提取数据时,将当前线程 id 作为 key。当然,这是基本原理,各个库在实现时可能会做一些其他的包装。
国内互联网上说起 Thread Local 时经常特指 Java 的 ThreadLocal 类。
但其实 Thread Local 是一个通用的技术。
Thread Local 的好处和缺陷
好处就是可以方便的在同一线程的不同函数之间共享数据,相当于是线程级别的全局变量,用起来很方便。
缺陷就是,通过 Thread Local 传递数据是隐式传参,会导致程序极难维护,难以追踪到某个变量是在哪里设置的、哪里修改的、哪里使用的,不建议在大型项目中使用。