为什么ThreadLocal.ThreadLocalMap使用Entry Array而不是Single Entry来保存数据?

时间:2018-05-29 01:47:38

标签: java thread-safety

当我们使用ThreadLocal.set(value)时,我们只使用相同的键保存一个值,那么为什么ThreadLocalMap使用Entry []而不是Entry来保存值?

2 个答案:

答案 0 :(得分:0)

ThreadLocal是一个哈希表,它维护与线程关联的所有Thread.threadLocals个对象,而不仅仅是单个项目。此表存储在package-private ThreadLocal.set实例变量中。

Thread.threadLocals更新export const enum Type { 'OPTION_NR1', 'OPTION_NR2' } 地图中的值:http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/tip/src/share/classes/java/lang/ThreadLocal.java#l190

答案 1 :(得分:0)

因为Thread可以设置多个val

ThreadLocalMap.set(ThreadLocal<?> key, Object value)

关键是ThreadLocal,所以线程可以通过不同的ThreadLocal设置多个val