📄 threadlocal.java
字号:
package onlyfun.caterpillar;
import java.util.*;
public class ThreadLocal<T> {
// 取得一个同步化的Map对象
private Map<Thread, T> storage =
Collections.synchronizedMap(new HashMap<Thread, T>());
public T get() {
// 取得目前执行get()方法的线程
Thread current = Thread.currentThread();
// 根据线程取得线程自有的资源
T t = storage.get(current);
// 如果还没有线程专用的资源空间
// 则建立一个新的空间
if(t == null &&
!storage.containsKey(current)) {
t = initialValue();
storage.put(current, t);
}
return t;
}
public void set(T t) {
storage.put(Thread.currentThread(), t);
}
public T initialValue() {
return null;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -