ThreadLocal
ThreadLocal
类允许我们创建只能被同一个线程读写的变量,本质是一个Hash
表,key
为Thread
自身.
- 主要方法:
set()
/ get()
/ remove()
创建
ThreadLocal<String> str = new ThreadLocal<>();
static ThreadLocal<String> str = new ThreadLocal<String>() {
@Override
protected String initialValue() {
return "a";
}
};
ThreadLocal<String> str = ThreadLocal.withInitial(() -> "a");
使用
public static void main(String[] args) {
new Thread(() -> {
System.out.println(str.get());
str.remove();
}).start();
new Thread(() -> {
str.set("bb");
System.out.println(str.get());
str.remove();
}).start();
}