java之ThreadLocal简单使用总结(1)

简介: java之ThreadLocal简单使用总结(1)

1、介绍ThreadLocal

看安卓源码的时候,在这个类Looper.java ,会有这个一句函数


static final ThreadLocal<Looper> sThreadLocal = new ThreadLocal<Looper>();


一开始我不是很懂ThreadLocal.java这个类,简单理解

ThreadLocal 就是把变量分成很多个拷贝,每个线程拥有一个,比如说一个变量使用ThreadLocal修饰,则在线程中会创建这个变量的副本进行操作.操作不会受另外一个线程影响.


2、常用API

ThreadLocal.java


1、构造函数


public ThreadLocal() {}


2、initialValue函数


   protected T initialValue() {

       return null;

   }


3、get函数


public T get()

该函数用来获取与当前线程关联的ThreadLocal的值

如果当前线程没有该ThreadLocal的值,则调用initialValue函数获取初始值返回。


4、set函数

public void set(T value)

设置当前线程的ThreadLocal的值为value


5、remove函数

public void remove()

将当前线程的ThreadLocal绑定的值删除

在某些情况下需要手动调用该函数,防止内存泄露。



相关文章
|
3月前
|
存储 Java 数据安全/隐私保护
探索Java中神奇的ThreadLocal:为什么它是多线程编程的重要工具?
探索Java中神奇的ThreadLocal:为什么它是多线程编程的重要工具?
|
6月前
|
存储 Java
java之线程死锁和ThreadLocal的使用
java之线程死锁和ThreadLocal的使用
|
7天前
|
存储 Java
Java的ThreadLocal使用
Java的ThreadLocal使用
13 1
|
27天前
|
安全 Java
java中线程经常被问到ThreadLocal你懂吗?
java中线程经常被问到ThreadLocal你懂吗?
7 0
|
2月前
|
存储 Java 数据库连接
详解Java中ThreadLocal类型
详解Java中ThreadLocal类型
29 1
|
3月前
|
存储 监控 Java
Java 中的 ThreadLocal:概念、应用及代码示例
Java 中的 ThreadLocal:概念、应用及代码示例
36 0
|
7月前
|
存储 安全 Java
【Java】线程数据共享和安全 -ThreadLocal
今天我要为大家推荐一个Java中非常实用且神奇的工具——ThreadLocal。它可以让我们在多线程环境下,轻松地实现线程私有的数据存储。它可以帮助我们在多线程环境下轻松解决变量共享和线程安全的问题。
|
9月前
|
存储 人工智能 移动开发
【Java基础】解锁多线程安全的秘密武器:探索ThreadLocal的神奇力量!
ThreadLocal是Java中的一个类,用于在多线程环境下,为**每个线程**提供**独立的变量副本**。每个线程都可以独立地访问自己的变量副本,因为该独立变量属于**当前线程**,对其他线程而言是隔离的,不会与其他线程的副本产生冲突。
|
5月前
|
安全 Java 数据库连接
ThreadLocal Java多线程下的影分身之术
后来,我把c删掉,变成了下面这样。如果我现在想查h,按照上面getEntry的逻辑,是不是遍历到3就停了,所以找不到h了? getEntry的逻辑表面确实是这样,但实际上getEntryAfterMiss、remove、gets时都会直接或者间接调用expungeStaleEntry会对表里的数据做整理。expungeStaleEntry()除了利用弱引用的特性对tab中Entry做清理外,还会对之前Hash冲突导致后移的Entry重新安放位置。所以不可能出现下面这种tab排放的。
22 0
|
6月前
|
Java 容器
java 浅谈ThreadLocal底层源码(通俗易懂)
java ThreadLocal介绍及源码分析 通俗易懂!
47 0