文档章节

Netty源码跟我读(二)

 南风吹梦
发布于 2015/11/14 23:20
字数 443
阅读 22
收藏 0

话说上次我们读到TailContext就停止了,我们先看类的继承关系.

这个有说明用,那我们得去翻代码了,翻来翻去,在DefaultChannelPipeline里有了痕迹.

这个map集合里维护这所有的handler,只不过不是直接引用,而是封装成了AbstractChannelHandlerContext,而AbstractChannelHandlerContext其实也很简单.它类似链表上的一个节点,对它前面后面的节点进行了引用,这样这个map结合只要定义好头和尾,那么那么就可以在两个方向上顺利就行查找,而且效率很高,看到这里,熟悉的朋友也许就明白了,这是filterchain设计模式最常见的实现.回到刚才的代码TailContext.

这个调用是跑到了AbstractChannelHandlerContext中,通过分析代码逻辑,表明是从链表的尾部开始向前查找,一直查到到了HeadContext中.

貌似终于要开始绑定了,我也是醉了,找得我好苦!

unsafe的作用,基本就是做一些实际的操作,它是channel的长工,所有的最底层的活都让他干了,到底NioServerSocketChannel使用的那个unsafe,那我们还得翻代码.

代码追到AbstractUnsafe中,它的bind方法有具体逻辑了.

接下来看dobind方法.终于回到了NioServerSocketChannel中.

终于,在这里我们的代码做了点有意义的事,不过没什么卵用,我已经累了,bind成功了,那我们该聊select了,这个流程我们下次聊.写不不好的地方欢迎拍砖.

© 著作权归作者所有

粉丝 0
博文 2
码字总数 1005
作品 0
海淀
私信 提问
源码之下无秘密 ── 做最好的 Netty 源码分析教程

背景 在工作中, 虽然我经常使用到 Netty 库, 但是很多时候对 Netty 的一些概念还是处于知其然, 不知其所以然的状态, 因此就萌生了学习 Netty 源码的想法. 刚开始看源码的时候, 自然是比较痛苦...

永顺
2017/11/29
0
0
Netty中Channel与Unsafe源码解读

  Channel是netty网络操作抽象类,包括网络的读,写,链路关闭,发起连接等。我们拿出NioServerSocketChannel来进行分析,NioServerSocketChannel的类图如下所示: Netty使用了聚合的方使来...

良辰美景TT
2018/07/20
0
0
netty之channelbuffer

看过英文的文档源码,还是勉强解释下,分享  ChannelBuffer的实现类有多个,这里列举其中主要的几个:   1)HeapChannelBuffer:这是Netty读网络数据时默认使用的ChannelBuffer,这里的H...

石头哥哥
2012/12/08
2.1K
0
netty源码分析之揭开reactor线程的面纱(二)

如果你对netty的reactor线程不了解,建议先看下上一篇文章netty源码分析之揭开reactor线程的面纱(一),这里再把reactor中的三个步骤的图贴一下 我们已经了解到netty reactor线程的第一步是...

闪电侠_
2018/08/02
0
0
netty源码分析之揭开reactor线程的面纱(三)

上两篇博文(netty源码分析之揭开reactor线程的面纱(一),netty源码分析之揭开reactor线程的面纱(二)已经描述了netty的reactor线程前两个步骤所处理的工作,在这里,我们用这张图片来回顾...

闪电侠_
2018/08/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周四乱弹 —— 干啥啥不行,吃饭第一名。

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 : 李白到杜甫家吃饭。杜甫洗菜,发现只有青瓜和萝卜,心中愧疚。这时,他看见了邻居家的鸡,杜甫一时心酸,忍不住喃喃自语:我希望...

小小编辑
27分钟前
164
7
Java描述设计模式(08):桥接模式

本文源码:GitHub·点这里 || GitEE·点这里 一、桥接模式简介 1、基础描述 桥梁模式是对象的结构模式。又称为柄体(Handle and Body)模式或接口(Interface)模式。桥梁模式的用意是“将抽象化...

知了一笑
28分钟前
5
0
C++ 函数指针的用法

天王盖地虎626
42分钟前
2
0
白话比原链跨链技术

随着Bystack的主侧链架构的推出,主侧链之间的跨链问题也成为比原链团队的主要攻克工程难题,当前比原链已经推出了两种跨链的机制,各有不同的侧重点,可能因为本身的跨链技术比较晦涩,本篇...

比原链Bytom
50分钟前
2
0
PostgreSQL参数search_path影响及作用

search_path稍微熟悉PG就会用到,用法这里就不必讲,本篇主要讲它在程序里怎样处理。 1、GUC参数定义 这是个 config_string 参数 {{"search_path", PGC_USERSET, CLIENT_CONN_STATEMENT,...

有理想的猪
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部