我们可以在 a 中设置多个对象ThreadLocal
吗?
问问题
4423 次
3 回答
16
一个thread local是当前线程的一个局部变量;所以每个线程都得到一个值。但是该值可以是一个实例,因此您可以在其中放置一个地图,例如,或者一个收集您想要的所有值的自定义类型。
于 2013-01-09T17:19:02.627 回答
6
你可以有多个ThreadLocal
,你可以有一个包含多个对象的对象。
例如
final ThreadLocal<Map<String, String>> localProperties = new ThreadLocal<Map<String, String>>() {
public Map<String, String> initialValue() {
return new LinkedHashMap<String, String>();
}
});
于 2013-01-09T17:24:05.450 回答
1
我们可以在单个 Thread 中创建多个 ThreadLocal 对象,并使用特定的 ThreadLocal 对象的get()
方法访问它。
实际上,ThreadLocal 有一个名为 ThreadLocalMap 的静态内部类及其自定义的 hashmap,其中该自定义映射中的 key 是 ThreadLocal 对象,value 是要存储的值。
每个线程都持有这个 threadLocalMap 对象的引用。
于 2015-08-26T08:55:43.993 回答