ThreadLocal

  1. ThreadLocal源码分析
    1. 定义:
    2. 与线程同步机制的区别

ThreadLocal源码分析

定义:

该类提供了线程局部变量。这些变量不同于它们的普通对应物,因为访问某个变量(通过get或者set)的每个线程都有自己的局部变量,它独立于变量的初始化副本。ThreadLocal实例通常是类中的private static字段,它们希望将状态与某一个线程相关联。

与线程同步机制的区别

线程同步机制是多个线程共享一个变量,而ThreadLocal是为每一个线程创建一个单独的变量副本。每个线程都可以独立的改变自己的副本而不影响别人。为多线程环境下变量问题提供了另外一种解决思路。

ThreadLocal定义了四个方法:

  • get(): 返回此线程局部变量的当前线程副本中的值
  • initialValue(): 返回此线程局部变量的当前线程的“初始值”
  • remove(): 删除当前线程局部变量当前线程的值
  • set(T value): 将此线程局部变量的当前线程副本中的值设置为指定值

除了以上的,ThreadLocal内部还有一个静态内部类ThreadLocalMap,get(),set(),remove()都是基于该内部操作。ThreadLocalMap提供了一种键值对方式存储每一个线程的变量副本的方法,key为当前ThreadLocal对象,value则是对应线程的变量副本。


本网站发布的一切文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请联系邮箱:1194325527@qq.com处理

目录
×

给作者杯卡布奇诺

github