ThreadLocal
含义
每个线程提供一个独立的变量副本解决了变量并发访问的冲突问题。
Thread线程内部的Map在类中描述如下:
public class Thread implements Runnable {
/* ThreadLocal values pertaining to this thread. This map is maintained
* by the ThreadLocal class. */
ThreadLocal.ThreadLocalMap threadLocals = null;
}
实现场景
用户登录之后,将用户信息放在threadlocal中,起到一个全局变量的作用
public class LoginInfoHelper {
private static ThreadLocal<LoginInfo> local = new ThreadLocal<>();
public static void setUserInfo(LoginInfo loginInfo) {
local.set(loginInfo);
}
public static LoginInfo getUserInfo() {
return local.get();
}
public static void removeUserInfo(