我们可以在ThreadLocal
中设置多个对象吗?
答案 0 :(得分:14)
线程local是当前线程的局部变量;所以每个线程只获得一个值。但是值可以是一个实例,因此您可以将地图放在那里,例如,或者自定义类型,它会收集您想要的所有值。
答案 1 :(得分:5)
您可以拥有多个ThreadLocal
,并且您可以在其中包含一个包含多个对象的对象。
e.g。
final ThreadLocal<Map<String, String>> localProperties = new ThreadLocal<Map<String, String>>() {
public Map<String, String> initialValue() {
return new LinkedHashMap<String, String>();
}
});