java线程学习之ThreadLocal

   ThreadLocal概念:线程局部变量,是一种多线程之间并发访问变量的解决方案。与synchronized加锁等方式不同,ThreadLocal完全不使用锁,而使用空间换时间的手段,为每个线程提供变量的独立副本,以保障线程安全。

      从性能上说,ThreadLocal不具备绝对的优势,在并发不是很高的时候,加锁的性能会更好,但作为一套与加锁完全无关的解决方案,在高并发量或子曰竞争激烈的场景下,使用ThreadLocal在一定程度上可以减少锁竞争。

每个线程都保持对其线程局部变量副本的隐式引用,只要线程是活动的并且 ThreadLocal 实例是可访问的;在线程消失之后,其线程局部实例的所有副本都会被垃圾回收(除非存在对这些副本的其他引用)。 

关于ThreadLocal就了解这么多,以后有收获会继续。。。

posted on 2019-05-08 15:28  山水爱恋  阅读(130)  评论(0编辑  收藏  举报