public class
> UserThreadLocal
<T> {
Map<Thread,T> thenCurrMap=new HashMap<>();
public void Set(T v){
thenCurrMap.put(Thread.currentThread(),v);
}
public T get(){
return thenCurrMap.getOrDefault(Thread.currentThread(),null);
}
static volatile int number=0;
public static void main(String[] args) {
UserThreadLocal<Integer> userThreadLocal=new UserThreadLocal<>();
for (int i=0;i<10;i++){
new Thread(new Runnable() {
@Override
public void run() {
userThreadLocal.Set(number++);
System.out.println(userThreadLocal.get());
}
}).start();
}
}
}
自己实现一个ThreadLocal
最新推荐文章于 2022-10-13 10:12:28 发布