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绑定的值删除

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



相关文章
|
9月前
|
存储 Java 数据安全/隐私保护
探索Java中神奇的ThreadLocal:为什么它是多线程编程的重要工具?
探索Java中神奇的ThreadLocal:为什么它是多线程编程的重要工具?
122 0
|
存储 Java
java之线程死锁和ThreadLocal的使用
java之线程死锁和ThreadLocal的使用
|
5月前
|
算法 安全 Java
JAVA并发编程系列(12)ThreadLocal就是这么简单|建议收藏
很多人都以为TreadLocal很难很深奥,尤其被问到ThreadLocal数据结构、以及如何发生的内存泄漏问题,候选人容易谈虎色变。 日常大家用这个的很少,甚至很多近10年资深研发人员,都没有用过ThreadLocal。本文由浅入深、并且才有通俗易懂方式全面分析ThreadLocal的应用场景、数据结构、内存泄漏问题。降低大家学习啃骨头的心理压力,希望可以帮助大家彻底掌握并应用这个核心技术到工作当中。
|
6月前
|
存储 安全 Java
Java 中的 ThreadLocal 变量
【8月更文挑战第22天】
56 4
|
7月前
|
存储 SQL Java
(七)全面剖析Java并发编程之线程变量副本ThreadLocal原理分析
在之前的文章:彻底理解Java并发编程之Synchronized关键字实现原理剖析中我们曾初次谈到线程安全问题引发的"三要素":多线程、共享资源/临界资源、非原子性操作,简而言之:在同一时刻,多条线程同时对临界资源进行非原子性操作则有可能产生线程安全问题。
123 1
|
8月前
|
存储 安全 Java
深入理解Java中的ThreadLocal机制:原理、方法与使用场景解析
深入理解Java中的ThreadLocal机制:原理、方法与使用场景解析
128 2
|
7月前
|
存储 缓存 Java
Java面试题:解释Java中的内存屏障的作用,解释Java中的线程局部变量(ThreadLocal)的作用和使用场景,解释Java中的锁优化,并讨论乐观锁和悲观锁的区别
Java面试题:解释Java中的内存屏障的作用,解释Java中的线程局部变量(ThreadLocal)的作用和使用场景,解释Java中的锁优化,并讨论乐观锁和悲观锁的区别
73 0
|
7月前
|
并行计算 算法 安全
Java面试题:解释Java内存模型的内存屏障,并讨论其对多线程并发的影响,解释Java中的线程局部变量(ThreadLocal)的工作原理,解释Java中的ForkJoinPool的工作原理
Java面试题:解释Java内存模型的内存屏障,并讨论其对多线程并发的影响,解释Java中的线程局部变量(ThreadLocal)的工作原理,解释Java中的ForkJoinPool的工作原理
66 0
|
7月前
|
Java 数据库连接
Java面试题:Java内存模型中的happens-before关系,Java中的ThreadLocal是如何工作的?Java中的CountDownLatch和CyclicBarrier的区别?
Java面试题:Java内存模型中的happens-before关系,Java中的ThreadLocal是如何工作的?Java中的CountDownLatch和CyclicBarrier的区别?
53 0
|
9月前
|
存储 Java
Java的ThreadLocal使用
Java的ThreadLocal使用
45 1