源码分析
灯塔先生
这个作者很懒,什么都没留下…
展开
-
HashMap详解
目录 目录移位运算符哈希原理1、为什么默认初始化桶数组大小为16,为什么加载因子的大小为0.75?2、为什么是8、6?源码分析Node节点 初始化容量HashMap初始化size操作get操作containsKeyput操作resize操作为什么String, Interger这样的wrapper类适合作为键? 移位运算符...原创 2018-10-30 16:05:01 · 166 阅读 · 0 评论 -
写自己的netty源码分析--服务端启动
目录服务端启动步骤一:创建服务端Channel步骤二:初始化服务端Channelinit()方法步骤三:注册selector步骤四:端口绑定netty整体架构Netty与Socket的对应关系 NioEventLoop --> Thread Channel --> Socket ByteBuf --> IO Bytes...原创 2019-06-13 20:32:29 · 232 阅读 · 0 评论 -
写自己的netty源码分析--NioEventLoop
目录绪论步骤一:NioEventLoop创建new ThreadPerTaskExecutor()[线程创建器]每次执行任务时都会创建一个线程实体(FastThreadLocalThread--封装的一个线程)识别nioEventLoop-1-xxfor(){newChild()} [构造NioEventLoop]创建一个selector保存线程执行器Threa...原创 2019-06-14 17:37:54 · 201 阅读 · 0 评论 -
写自己的netty源码分析--pipeline
绪论三个问题netty是如何判断ChannelHandler类型的? 对于ChannelHandler的添加应该遵循什么样的顺序? 用户手动触发事件传播,不同的触发方式有什么样的的区别?主要内容pipeline的初始化 添加和删除ChannelHandler 事件和异常的传播pipeline的初始化pipeline在创建Channel的时候被创建; pipeline节...原创 2019-07-01 15:35:00 · 364 阅读 · 0 评论 -
写自己的netty源码分析--ByteBuf
绪论三个问题内存的类别有哪些? 如何减少多线程内存分配之间的竞争? 不同大小的内存是如何进行分配的?主要内容内存与内存管理器的抽象 不同规格大小和不同类别的内存的分配策略 内存的回收过程ByteBuf结构与重要API内存结构该结构其实是一个数组,有两个索引 readerIndex 和writerIndex,支持索引访问。* +------------...原创 2019-07-04 16:59:04 · 485 阅读 · 0 评论