那只能创建一个ThreadLocalMap对象的话,如果有多个ThreadLocal对象,那这个threadlocalmap由哪个ThreadLocal创建和绑定呢?
时间: 2023-11-16 22:59:20 浏览: 217
美团面试,问了ThreadLocal原理,这个回答让我通过了
5星 · 资源好评率100%
在一个Thread中,可以持有多个ThreadLocal对象,每个ThreadLocal对象都会对应一个ThreadLocalMap对象。当调用ThreadLocal的get()或set()方法时,实际上是在操作当前线程的ThreadLocalMap对象。每个ThreadLocal对象都有一个唯一的索引值,这个索引值就是ThreadLocal在ThreadLocalMap中的键值对的键。因此,每个ThreadLocal对象都会在当前线程的ThreadLocalMap中创建一个键值对,这个键值对的键就是ThreadLocal对象的索引值,值就是我们传递给set()方法的值。所以,每个ThreadLocal对象都会绑定到当前线程的ThreadLocalMap中。
阅读全文