Board logo

标题: Netty源码分析之服务启动(1) [打印本页]

作者: look_w    时间: 2019-1-15 19:18     标题: Netty源码分析之服务启动(1)

本节主要分析server的启动过程。
Netty是基于Nio实现的,所以也离不开selector、serverSocketChannel、socketChannel和selectKey等,只不过Netty把这些实现都封装在了底层。
从示例可以看出,一切从ServerBootstrap开始。
ServerBootstrap实例中需要两个NioEventLoopGroup实例,分别为boss和work,有不同的分工:
1、 boss负责请求的accept操作。
2、 work负责请求的read、write和处理操作。
NioEventLoopGroupNioEventLoopGroup主要负责管理eventLoop的生命周期,eventLoop数量默认为处理器个数的两倍。

NioEventLoopGroup

继承关系如下:

NioEventLoopGroup


NioEventLoopGroup构造方法:
[url=][/url]
public NioEventLoopGroup() {      this(0);  }  public NioEventLoopGroup(int nThreads) {      this(nThreads, null); }  public NioEventLoopGroup(int nThreads, ThreadFactory threadFactory) {      this(nThreads, threadFactory, SelectorProvider.provider());  }  public NioEventLoopGroup(              int nThreads, ThreadFactory threadFactory, final SelectorProvider selectorProvider) {      super(nThreads, threadFactory, selectorProvider);  }[url=][/url]

MultithreadEventLoopGroup构造方法:
protected MultithreadEventLoopGroup(int nThreads, ThreadFactory threadFactory, Object... args) {      super(nThreads == 0? DEFAULT_EVENT_LOOP_THREADS : nThreads, threadFactory, args);  }
其中 DEFAULT_EVENT_LOOP_THREADS 为处理器数量的两倍。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0