ThreadLocal中的多个对象

时间:2013-01-09 17:16:55

标签: java multithreading thread-local

我们可以在ThreadLocal中设置多个对象吗?

2 个答案:

答案 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>();
     }
});