ThreadLocal的基本理解

本人第一次写博客,理解尚浅,往后多多指教。

ThreadLocal可以让我们拥有当前线程的变量,每个线程可以通过get()和set()方法来获取这个局部变量进行操作,并且保证线程之间都是独立的。

用途:

一、管理connetion。

二、避免一些参数的传递。

ThreadLocal实现的原理

TheadLocal类部有个内部类ThreadLocalMap,用Entry类作为存储,将当前的ThreadLocal对象作为key,变量作为value,

总结:

  1. 每个Thread维护着一个ThreadLocalMap的引用
  2. ThreadLocalMap是ThreadLocal的内部类,用Entry来进行存储
  3. 调用ThreadLocal的set()方法时,实际上就是往ThreadLocalMap设置值,key是ThreadLocal对象,值是传递进来的对象
  4. 调用ThreadLocal的get()方法时,实际上就是往ThreadLocalMap获取值,key是ThreadLocal对象
  5. ThreadLocal本身并不存储值,它只是作为一个key来让线程从ThreadLocalMap获取value

猜你喜欢

转载自www.cnblogs.com/liubincode/p/9088735.html
今日推荐