天天看点

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

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

继续阅读