zoukankan      html  css  js  c++  java
  • Thread Local

    1、ThreadLocal 是什么 ?有什么用 ?

    为本地线程生成共享变量副本的工具类。CopyValueIntoEveryThread

    主要作用:同一线程中做到跨类,跨方法传递数据,而不用传递参数和依靠返回值

    具体实现:

    1. 定义全局的 ThreadLocal对象 ,变量记作 tl
    2. 共享变量
    3. 线程内调用 tl的方法,tl会为当前线程创建ThreadLocalMap对象(如果不存在),变量记作 map
    4. map创建Entry对象,存储键值对,keytl变量副本 value是初始化值(shared副本

    每个线程创建自己的 ThreadLocalMap相互不干扰,而又共享了 全局变量

    2、Thread Local 副作用

    会产生内存泄露

    tl强引用指向 ThreadLocal实例对象mapEntrykey(记作t1变量副本)弱引用指向 ThreadLocal实例对象

    1. t1的指向断开,如果t1变量副本还是强引用,ThreadLocal实例对象,无法回收,会造成内存泄漏。
    2. 使用 弱引用 还可能造成内存泄漏,即使 key==null,Entry对象还存在,value没有被回收,造成内存泄漏,每次都要 remove,清除 Entry

  • 相关阅读:
    dedecms织梦建站总结
    ubuntu安装
    git命令
    关于测试日报
    Appium环境搭建(Windows版)
    jmeter,CSV数据加载、数据库连接、正则
    jmeter,参数、Bean Shell断言
    jmeter安装和组件说明
    造数据
    WEB UI自动化
  • 原文地址:https://www.cnblogs.com/sweetorangezzz/p/13516054.html
Copyright © 2011-2022 走看看