走好每一步路--netty篇
本专栏主要记录找工作时需要具备的知识
灯塔先生
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
写自己的netty源码分析--ByteBuf
绪论 三个问题 内存的类别有哪些? 如何减少多线程内存分配之间的竞争? 不同大小的内存是如何进行分配的? 主要内容 内存与内存管理器的抽象 不同规格大小和不同类别的内存的分配策略 内存的回收过程 ByteBuf结构与重要API 内存结构 该结构其实是一个数组,有两个索引 readerIndex 和writerIndex,支持索引访问。 * +------------...原创 2019-07-04 16:59:04 · 558 阅读 · 0 评论 -
写自己的netty源码分析--pipeline
绪论 三个问题 netty是如何判断ChannelHandler类型的? 对于ChannelHandler的添加应该遵循什么样的顺序? 用户手动触发事件传播,不同的触发方式有什么样的的区别? 主要内容 pipeline的初始化 添加和删除ChannelHandler 事件和异常的传播 pipeline的初始化 pipeline在创建Channel的时候被创建; pipeline节...原创 2019-07-01 15:35:00 · 453 阅读 · 0 评论 -
写自己的netty源码分析--新连接接入
绪论 两个问题 netty是在哪里检测到有新连接接入的? 新连接是怎样注册到NioEventLoop线程的? 处理逻辑 检测新连接 创建NioSocketChannel 分配线程及注册selector 向selector注册读事件 检测新连接 processSelectedKey(key, channel) [入口] NioMessageUnsafe.read() doRe...原创 2019-06-21 15:55:33 · 202 阅读 · 0 评论 -
写自己的netty源码分析--NioEventLoop
目录 绪论 步骤一:NioEventLoop创建 new ThreadPerTaskExecutor()[线程创建器] 每次执行任务时都会创建一个线程实体(FastThreadLocalThread--封装的一个线程) 识别nioEventLoop-1-xx for(){newChild()} [构造NioEventLoop] 创建一个selector 保存线程执行器Threa...原创 2019-06-14 17:37:54 · 271 阅读 · 0 评论 -
写自己的netty源码分析--服务端启动
目录 服务端启动 步骤一:创建服务端Channel 步骤二:初始化服务端Channel init()方法 步骤三:注册selector 步骤四:端口绑定 netty整体架构 Netty与Socket的对应关系 NioEventLoop --> Thread Channel --> Socket ByteBuf --> IO Bytes...原创 2019-06-13 20:32:29 · 281 阅读 · 0 评论
分享