threadLocalMap的entry为什么还要设计成链表的形式

发布于 2022-09-07 08:05:01 字数 444 浏览 27 评论 0

threadlocalmap解决hash冲突是用开放定址法,但是threadlocalmap中node的设计还是

static class Entry extends WeakReference<ThreadLocal<?>> {
            /** The value associated with this ThreadLocal. */
            Object value;

            Entry(ThreadLocal<?> k, Object v) {
                super(k);
                value = v;
            }
        }
        

这样的话这个Entry里面的entry还有什么用吗?
而且这个结构为什么没有key ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

孤独患者 2022-09-14 08:05:01

首先 Entry 并不是一个链表 值是value,key也就是这个弱引用的ThreadLocal对象。多个entry存在数组中。通常我们使用ThreadLocal都是存储当前线程的私有变量,也就是只存一个值,那么为什么还需要一个可以存多个值的数组呢?

ThreadLocal可以定义多个,每个ThreadLocal都有自己私有的线程变量

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文