首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Netty源码分析之服务启动(1)

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 为处理器数量的两倍。
返回列表