ThreadLocal
从名字我们就可以看到ThreadLocal 叫做本地线程变量,意思是说,ThreadLocal 中填充的是当前线程的变量,该变量对其他线程而言是封闭且隔离的,ThreadLocal 为变量在每个线程中创建了一个副本,这样每个线程都可以访问自己内部的副本变量。
创建ThreadLocal变量
private static ThreadLocal<Long> threadLocal = new ThreadLocal<>();
定义set和get方法
public static void setThreadLocal(Long id){
threadLocal.set(id);
}
public static Long getThreadLocal(){
return threadLocal.get();
}
使用这个变量要注意内存溢出问题,添加remove方法:
public static void clearThreadLocal(){
threadLocal.remove();
}