美文网首页
ThreadLocal浅谈

ThreadLocal浅谈

作者: 卡萨布兰卡ginger | 来源:发表于2018-05-22 15:08 被阅读0次

最近在工作中,有用到ThreadLocal类,在我的另外一篇博客中,也提到了一些:

ThreadLocal简单定义

那么,ThreadLocal到底是什么呢?

结合业务场景来解释说明,比如说我们现在需要统计用户发请求的IP地址,获取值可能是在别的地方。那么在同时A用户发了一个请求,ip地址是10.10.10.10,B用户发送了一个请求,ip地址是10.10.10.12,那么在存储和获取的时候,我们怎么知道什么时候应该获取10,什么时候该获取12呢。假设每一个请求访问时一个线程,那么ThreadLocal是为了解决A线程拥有自己的一个对象,B线程拥有自己的对象。A对象记录着自己的10,B对象记录着自己的12,获取的时候,同一个请求相当于同一个线程,A请求会取出ip10.10.10.10,B会取出10.10.10.12。

看源码:

ThreadLocal源码一

内部是通过每次set的时候都new一个对象,然后利用一个map类去维护。此时的map也不是简单的map,是一个内部类,源码也在ThreadLocal类中。

主要参考的博客有:

http://www.cnblogs.com/dolphin0520/p/3920407.html

http://www.iteye.com/topic/103804

https://www.ibm.com/developerworks/cn/java/j-threads/index3.html

相关文章

  • 深入JDK源码一:ThreadLocal

    浅谈ThreadLocal设计 初看ThreadLocal的源码的时候,觉得有几个地方比较晦涩,于是索性按照自己的...

  • ThreadLocal浅谈

    最近在工作中,有用到ThreadLocal类,在我的另外一篇博客中,也提到了一些: 那么,ThreadLocal到...

  • ThreadLocal浅谈

    前言 最近项目中经常用到了ThreadLocal,所以仔细研究一下这个类,以备以后复习。 threadLocals...

  • 浅谈 ThreadLocal

    有时,你希望将每个线程数据(如用户ID)与线程关联起来。尽管可以使用局部变量来完成此任务,但只能在本地变量存在时才...

  • 浅谈ThreadLocal

    在阅读JTA源码的时候,看到事务管理器的是有,遇到这样一段代码。 其中的TheadLocal引起了我的注意。 通过...

  • 浅谈ThreadLocal

    一、ThreadLocal是什么 ThreadLocal是线程本地存储变量,线程将一些变量存储在ThreadLoc...

  • 浅谈synchronized、Lock、ThreadLocal和

    1. 背景 在进行多线程编程时,最让人头痛的无非是线程安全问题,对共享资源的访问控制,如果稍加不注意就可能导致莫名...

  • ThreadLocal

    ThreadLocal 简介ThreadLocal 使用ThreadLocal 原理InheritableThre...

  • ThreadLocal

    ThreadLocal 由于 ThreadLocal 支持范型,如 ThreadLocal< StringBuil...

  • 精通Java并发 - ThreadLocal

    3. ThreadLocal[#3-threadlocal]3.1 ThreadLocal 常用方法[#31-th...

网友评论

      本文标题:ThreadLocal浅谈

      本文链接:https://www.haomeiwen.com/subject/hokqjftx.html