netty 启动分析 NioEventLoopGroup
2016-10-24 14:36
1196 查看
ServerBootstrap.bind()方法会实例化一个channel,这个channel的类型是通过channel方法指定的,例如ServerBootstrap.channel(NioServerSocketChannel.class)
指定的同时会创建一个ChannelFactory工厂,默认是ReflectiveChannelFactory,然后bind()方法通过这个ChannelFactory实例化NioServerSocketChannel。
实例化之后会初始化 init方法,获取channel的pipeline,添加handler处理器,
然后使用bossGroup注册,bossGroup是我们创建的NioEventLoopGroup,它维护了一组NioEventLoop,每个维护了一个selector选择器,NioEventLoopGroup。
选择一个NioEventLoop来把channel注册到这个NioEventLoop的选择器上。
指定的同时会创建一个ChannelFactory工厂,默认是ReflectiveChannelFactory,然后bind()方法通过这个ChannelFactory实例化NioServerSocketChannel。
实例化之后会初始化 init方法,获取channel的pipeline,添加handler处理器,
p.addLast(new ChannelInitializer<Channel>() { @Override public void initChannel(Channel ch) throws Exception { ChannelPipeline pipeline = ch.pipeline(); ChannelHandler handler = handler(); if (handler != null) { pipeline.addLast(handler); } pipeline.addLast(new ServerBootstrapAcceptor( currentChildGroup, currentChildHandler, currentChildOptions, currentChildAttrs)); } });
然后使用bossGroup注册,bossGroup是我们创建的NioEventLoopGroup,它维护了一组NioEventLoop,每个维护了一个selector选择器,NioEventLoopGroup。
选择一个NioEventLoop来把channel注册到这个NioEventLoop的选择器上。
相关文章推荐
- Netty线程模型源码分析之NioEventLoopGroup的初始化
- Netty源码学习——EventLoopGroup原理:NioEventLoopGroup分析
- Netty学习之旅------再谈线程模型之源码分析NioEventLoopGroup、SingleThreadEventExecutor
- Netty 4.0源码分析1:服务端启动过程中的Channel与EventLoopGroup的注册
- 【Netty4.X】Netty源码分析之NioEventLoopGroup(五)
- Netty源码分析:NioEventLoop启动以及其IO操作和Task任务的处理
- Netty源码分析:NioEventLoopGroup
- Netty中NioEventLoopGroup
- Netty源码学习(二)NioEventLoopGroup
- Netty源代码学习——EventLoopGroup原理:NioEventLoopGroup分析
- Netty源码分析系列1——NIOEventLoopGroup的创建
- Netty4(一)NioEventLoopGroup
- netty NioEventLoopGroup 线程名称设置
- android netty5.0 编译时 java.lang.NoClassDefFoundError: io.netty.channel.nio.NioEventLoopGroup
- 【Netty4.X】Netty源码分析之NioEventLoop(六)
- Netty源码分析之NioEventLoop(转)
- Netty4-- NioEventLoopGroup继承层次结构
- netty源码分析(一)EventLoopGroup
- 【Netty源码学习】EventLoopGroup