标题:
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