账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    ThreadLocal 中的 Entry 为什么要继承WeakRefrence<ThreadLocal>
    64
    0

    ThreadLocalMap 的 Entry 继承了 WeakRefrence<ThreadLocal>。
    为什么这样子?
    有人说是为了防止内存泄漏,但是没有给出怎样情况下会发生内存泄漏。
    有木有大神可以详细分析一下WeakRefrence的作用,还有Entry为什么要继承WeakRefrence。

    继承一个WeakRefrence 又是什么个意思?

    1
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 流光追不及 普通会员 1楼

      ThreadLocal 中的 Entry 之所以要继承 WeakRefrence,有以下几个原因:

      1. 异步处理:由于线程安全性问题,线程之间可能会有竞争。为了确保线程安全,我们需要在多个线程中共享同一块数据。弱引用是一种线程安全的数据结构,可以在多线程环境中正确地访问和修改数据。在 Entry 类中继承 WeakRefrence,可以让 Entry 类在多个线程中正确地管理共享的数据。

      2. 线程安全:虽然 Entry 类可以继承弱引用,但这样并不能完全保证线程安全。因为弱引用需要提供一个独立的对象来管理数据,可能会导致数据的不一致。通过继承 ThreadLocal,可以确保 Entry 类在多个线程中正确地管理共享的数据,从而提高线程安全性。

      3. 简化代码:继承 ThreadLocal 的 Entry 类可以简化代码。因为 Entry 类不需要提供其他对象的引用,只需要在每个线程中创建一个 ThreadLocal 对象即可。这可以大大简化代码,并减少线程同步的复杂性。

      4. 实现异步处理:在某些情况下,我们需要实现异步处理。通过继承 ThreadLocal 的 Entry 类,可以实现异步处理,从而提高程序的性能和响应性。

      总的来说,继承 WeakRefrence 是一个很好的选择,可以帮助我们解决线程安全问题,简化代码,实现异步处理等。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部