ThreadLocal用来存放变量到当前线程中,如果存放的是成员变量或临时变量,各线程值互不干扰。如果存放的是静态成员变量,还是相互干扰的,因为存的是引用。
不干扰例子:
相互干扰例子
不干扰例子:
private static final ThreadLocal<Variables> threadVariables = new ThreadLocal<Variables>();
public static Variables getVariables(){
Variables variables = threadVariables.get();
if(variables == null){
variables = new Variables();
threadVariables.set(variables);
}
return variables;
}
相互干扰例子
private static final ThreadLocal<Variables> threadVariables = new ThreadLocal<Variables>();
private static Variables example = new Variables();
public static Variables getVariables() {
Variables variables = threadVariables.get();
if (variables == null) {
variables = example;
threadVariables.set(variables);
}
return variables;
}
ThreadLocal使用详解
本文详细介绍了ThreadLocal在Java中的使用方式,并通过两个示例对比了其在不同场景下的行为表现,帮助开发者理解如何正确地利用ThreadLocal来隔离线程间的变量。
1640

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



