关于ThreadLocal的问题
程序中为什么要使用ThreadLocal这个泛型类,直接用SqlSession类不可以吗?对这个不太理解,请老师解释一下,ThreadLocal类的使用场景有哪些?
7
收起
正在回答
1回答
同学你好:
1、程序中为什么要使用ThreadLocal这个泛型类
ThreadLocal 是 JDK底层提供的一个解决多线程并发问题的工具类,可以防止各个线程之间的变量互不干扰,适用于高并发编程,一般用来解决数据库连接、Session管理等。
这里使用到 ThreadLocal ,是为了在多线程情况下,可以安全的关闭当前线程持有的sqlSession对象。
2、ThreadLocal类的使用场景有哪些
ThreadLocal<T>其实可以看做是与线程绑定的一个变量,用于线程间的数据隔离。ThreadLocal为每一个线程都提供了变量的副本,使得每个线程在某一时间访问到的并不是同一个对象,这样就隔离了多个线程对数据的数据共享。
明白了它能做到什么。我们就知道什么时候需要用了。也就是在使用线程不安全的类的情况下,在一个线程中修改不影响其他线程的使用的情况下,使用ThreadLocal来隔离这个对象是比较合适的。
如果解答了同学的疑问,望采纳~
祝学习愉快~
Java数据库开发与实战应用2018版
- 参与学习 人
- 提交作业 277 份
- 解答问题 4297 个
Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星