theadLocal
时间: 2023-10-17 22:32:33 浏览: 49
ThreadLocal是Java中的一个类,用于实现线程局部变量。它可以在每个线程中创建一个变量的副本,每个线程对该副本进行操作,互不影响。
当线程第一次调用ThreadLocal的set或者get方法时,会创建一个threadLocals变量,用于存储该线程的本地变量。具体而言,ThreadLocal实例本身相当于一个装载本地变量的工具壳,通过set方法将值添加到调用线程的threadLocals中,当调用线程调用get方法时,能够从自己的threadLocals中取出该变量。
在get方法的实现中,首先获取当前调用线程,如果当前线程的threadLocals不为null,就直接返回当前线程的threadLocals变量中的本地变量值,否则执行setInitialValue方法来初始化threadLocals变量。
需要注意的是,如果调用线程一直不终止,那么该本地变量将一直存放在threadLocals中,可能会导致内存溢出。因此,在使用完ThreadLocal后,需要调用remove方法将该线程的threadLocals中的本地变量删除。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [ThreadLocal详解](https://blog.csdn.net/m0_49508485/article/details/123234587)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]