Java使用ThreadLocal保存全局变量
代码
import com.alibaba.fastjson.JSONObject;
public class ContextHolder {
/**
* 使用ThreadLocal维护变量,ThreadLocal为每个使用该变量的线程提供独立的变量副本,
* 所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。
*/
private static final ThreadLocal<JSONObject> CONTEXT_HOLDER = new ThreadLocal<>();
/**
* 设置
*/
public static void setContextHolder(JSONObject jsonObject) {
CONTEXT_HOLDER.set(jsonObject);
}
/**
* 获取
* @return
*/
public static JSONObject getContextHolder() {
return CONTEXT_HOLDER.get();
}
/**
* 清空
*/
public static void clearContextHolder() {
CONTEXT_HOLDER.remove();
}
}
ThreadLocal是Java提供的一个线程局部变量类,它可以为每个线程创建变量的独立副本。在ContextHolder类中,使用ThreadLocal存储和获取JSONObject对象,确保了不同线程间数据的隔离性,从而实现线程安全的全局变量管理。
1016

被折叠的 条评论
为什么被折叠?



