zoukankan      html  css  js  c++  java
  • ThreadLocal

    ThreadLocal是什么

    早在JDK 1.2的版本中就提供java.lang.ThreadLocalThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。

    ThreadLocal很容易让人望文生义,想当然地认为是一个本地线程。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它命名为ThreadLocalVariable更容易让人理解一些。

    当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。

    ThreadLocal的接口方法

    ThreadLocal类接口很简单,只有4个方法,我们先来了解一下:

    • void set(Object value)

    设置当前线程的线程局部变量的值。

    • public Object get()

    该方法返回当前线程所对应的线程局部变量。

    • public void remove()

    将当前线程局部变量的值删除,目的是为了减少内存的占用,该方法是JDK 5.0新增的方法。需要指出的是,当线程结束后,对应该线程的局部变量将自动被垃圾回收,所以显式调用该方法清除线程的局部变量并不是必须的操作,但它可以加快内存回收的速度。

    • protected Object initialValue()

    返回该线程局部变量的初始值,该方法是一个protected的方法,显然是为了让子类覆盖而设计的。这个方法是一个延迟调用方法,在线程第1次调用get()set(Object)时才执行,并且仅执行1次。ThreadLocal中的缺省实现直接返回一个null

     

  • 相关阅读:
    333333
    钢镚儿冲刺一周期第六天
    钢镚儿冲刺一周期第五天
    钢镚儿冲刺一周期第四天
    钢镚儿冲刺一周期第三天
    钢镚儿冲刺一周期第二天
    钢镚儿冲刺一周期第一天
    软件工程第九周总结
    CVPR论文的爬取
    构建之法读后感第五
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9332030.html
Copyright © 2011-2022 走看看