netty源码分析
chenchangqun11
这个作者很懒,什么都没留下…
展开
-
netty源码分析2-3-server启动-动态分析
分享内容如下client请求连接后,sever端的处理 网络标识位的变化 子Reactor启动1.client请求连接后,sever端的处理client连接时创建NioSocketChannel,触发DefaultChannelPipeline.read()AbstractNioMessageChannel$NioMessageUnsafe.read()@Overridepublic void read() {for (;;) {//创建int l...原创 2020-08-03 16:40:52 · 233 阅读 · 0 评论 -
netty源码分析11-ByteBuf
本文分享内容如下AbstractByteBuf分析 readXXX系列方法 读写方法分析 ensureWritable分析 capacity分析 setBytes(int, byte[], int, int) 分析 AbstractReferenceCountedByteBuf分析 ByteBuffer-put系列方法分析 UnpooledHeapByteBuf分...原创 2019-12-20 16:32:37 · 287 阅读 · 0 评论 -
netty源码分析2-2-NioSocketChanel初始化
本文分享内容初始化NioSocketChannel初始化NioSocketChannel当客户端发起连接时,服务端建立与客户端的连接的过程,实际上就是NioSocketChanel初始化的过程。这个过程依赖NioMessageUnsafe.read(),下面分析一下其源码@Overridepublic void read() {assert eventLoop()....原创 2019-12-06 11:25:05 · 170 阅读 · 0 评论 -
netty源码分析10-写数据
本文分享内容如下ChannelOutboundBuffer分析 AbstractUnsafe.write分析 flush流程分析ChannelOutboundBuffer分析它是一个环形数组,用于缓存还没发送出去的数据,每一个ChannelOutboundBuffer都存放在ThreadLocal中。内部维护一个定长的数组,按照顺序,从头到尾使用,如果到达尾部再从头开始使用,循环...原创 2019-12-06 21:40:57 · 211 阅读 · 0 评论 -
netty源码分析9-Unsafe
本文分享以下内容Unsafe概况 AbstractUnsafe 分析 AbstractNioUnsafe分析 NioByteUnsafe分析 NioMessageUnsafe分析Unsafe概况unsafe是Channel的内部逻辑实现,实际的IO操作都是由unsafe完成的。unsafe调用原生的NIO API处理IO操作,使用Pipeline传递触发的channel...原创 2019-12-06 17:58:46 · 173 阅读 · 0 评论 -
netty源码分析8-NioEventLoop-IO事件,IO任务
本文分享内容如下:processSelectedKeysOptimized分析 IO事件执行分析processSelectedKeysOptimized分析private void processSelectedKeysOptimized(SelectionKey[] selectedKeys) {for (int i = 0;; i ++) {final SelectionK...原创 2019-12-06 10:46:25 · 223 阅读 · 0 评论 -
netty源码分析7-NioEventLoop-run方法疑难点
本文分享内容如下select()和空轮询bug解决分析 EventLoop 中对selectKeys的改造 wakeup分析select()和空轮询bug解决分析当select空轮询( selector.select(timeoutMillis); 未等待 timeoutMillis) 执行 次数 达到SELECTOR_AUTO_REBUILD_THRESHOLD(默认512)...原创 2019-12-05 18:29:04 · 238 阅读 · 0 评论 -
netty源码分析6-NioEventLoop启动和run方法
分享内容如下select启动跟踪 定时任务机制分析 NioEventLoopIO轮询方法分析select启动跟踪NioEventLoop中有循环select实现,是什么时候被调用的?循环select由run方法实现,调用链如下图6ServerBootstrap(AbstractBootstrap<B,C>).initAndRegister() line...原创 2019-12-05 18:48:26 · 269 阅读 · 0 评论 -
netty源码分析5-NioEventLoopGroup
分享内容如下:NioEventLoopGroup初始化分析 NioEventLoopGroup父子类分析 parentGroup与childGroup区别1.NioEventLoopGroup初始化分析从接口类图上看 EventLoopGroup 继承了 线程池和定时线程池功能,判断EventLoopGroup具有线程池的复合功能。从命名猜测 EventLoopGroup 管理了一组...原创 2019-12-05 16:09:20 · 445 阅读 · 0 评论 -
netty源码分析3-NioServerSocketChannel,NioSocketChannel
本文分析内容如下Channel主要接口分析 AbstractChannel分析 AbstractNioChannel分析 AbstractNioByteChannel分析 AbstractNioMessageChannel 分析 NioSocketChannel分析 AbstractNioMessageServerChannel分析 NioServerSocketChannel分...原创 2019-12-03 16:29:42 · 577 阅读 · 0 评论 -
netty源码分析4-ChannelPipeline和ChannelHandler
分享内容如下ChannelPipeline和ChannelHandler要点概要 ChannelPipeline功能分析 DefaultChannelHandlerContext分析 findContextOutbound,findContextInbound分析 DefaultChannelHandlerInvoker无锁化分析 HeadHandler和tailHandler分析...原创 2019-12-03 16:10:49 · 534 阅读 · 0 评论 -
netty源码分析2-1-server启动
本文包括以下内容initAndRegister-createChannel分析 initAndRegister-init分析 initAndRegister-register分析 doBind0分析sever端启动主要处理都在bind()处理中,其中主要代码如下AbstractBootstrapprivate ChannelFuture doBind(final SocketA...原创 2019-10-31 16:23:44 · 139 阅读 · 0 评论