?? 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 + -