ThreadLocal的基本理解
Posted liubincode
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThreadLocal的基本理解相关的知识,希望对你有一定的参考价值。
本人第一次写博客,理解尚浅,往后多多指教。
ThreadLocal可以让我们拥有当前线程的变量,每个线程可以通过get()和set()方法来获取这个局部变量进行操作,并且保证线程之间都是独立的。
用途:
一、管理connetion。
二、避免一些参数的传递。
ThreadLocal实现的原理
TheadLocal类部有个内部类ThreadLocalMap,用Entry类作为存储,将当前的ThreadLocal对象作为key,变量作为value,
总结:
- 每个Thread维护着一个ThreadLocalMap的引用
- ThreadLocalMap是ThreadLocal的内部类,用Entry来进行存储
- 调用ThreadLocal的set()方法时,实际上就是往ThreadLocalMap设置值,key是ThreadLocal对象,值是传递进来的对象
- 调用ThreadLocal的get()方法时,实际上就是往ThreadLocalMap获取值,key是ThreadLocal对象
- ThreadLocal本身并不存储值,它只是作为一个key来让线程从ThreadLocalMap获取value。
以上是关于ThreadLocal的基本理解的主要内容,如果未能解决你的问题,请参考以下文章