前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Dubbo学习Netty中的FastThreadLocal

Dubbo学习Netty中的FastThreadLocal

作者头像
书唐瑞
发布2022-06-02 14:07:25
2010
发布2022-06-02 14:07:25
举报
文章被收录于专栏:Netty历险记

在之前的Netty的FastThreadLocal文章中介绍了FastThreadLocal在Netty中的实现和使用.

在JDK的ThreadLocal的实现上,它生成一个threadLocalHashCode值,根据这个Code值从ThreadLocalMap中存取值,底层使用的是哈希表.

而FastThreadLocal会生成一个索引下标index,通过这个索引下标从InternalThreadLocalMap中存取值, 底层使用数组的方式实现存取.

一个使用哈希表,一个使用数组,性能会有较明显差异.

今天在浏览Dubbo源码的时候,发现了一个com.alibaba.dubbo.common.threadlocal.InternalThreadLocal类,细看下它的实现,代码与io.netty.util.concurrent.FastThreadLocal很相似.

看下Dubbo源码中对它的解释

This design is learning from io.netty.util.concurrent.FastThreadLocal which is in Netty.

原来Dubbo是学习了Netty的设计. Dubbo并没有使用JDK的ThreadLocal, 它也是使用和Netty一样的设计理念, 底层使用数组实现.

个人见解: 有时候学习源码, 比如学习Netty,可能职业生涯中都不会使用Netty实现一个高性能的框架. 学习源码是让我学习里面的一些思想和解决问题的思路,能够运用到日常的开发工作中.

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Netty历险记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档