ThreadLocal类使用说明

Posted wwb0811

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThreadLocal类使用说明相关的知识,希望对你有一定的参考价值。

  ThreadLocal类用于创建一个线程本地变量
  在Thread中有一个成员变量ThreadLocals,该变量的类型是ThreadLocalMap,也就是一个Map,它的键是threadLocal,值为就是变量的副本。通过ThreadLocal的get()方法可以获取该线程变量的本地副本,在get方法之前要先set,否则就要重写initialValue()方法。
ThreadLocal的使用场景:       
  数据库连接:在多线程中,如果使用懒汉式的单例模式创建Connection对象,由于该对象是共享的,那么必须要使用同步方法保证线程安全,这样当一个线程在连接数据库时,那么另外一个线程只能等待。这样就造成性能降低。如果改为哪里要连接数据库就来进行连接,那么就会频繁的对数据库进行连接,性能还是不高。这时使用ThreadLocal就可以既可以保证线程安全又可以让性能不会太低。但是ThreadLocal的缺点时占用了较多的空间。

以上是关于ThreadLocal类使用说明的主要内容,如果未能解决你的问题,请参考以下文章

理解和使用ThreadLocal类

MyBatis基础:使用java提供的ThreadLocal类优化代码

JUC系列同步工具类之ThreadLocal

ThreadLocal 类 的源码解析以及使用原理

ThreadLocal 详解

ThreadLocal类第一次使用导致内存溢出