太原PHP培训
达内太原php培训中心

0351-5608878

热门课程

太原php培训班:深入浅出Netty——服务启动(1)

  • 时间:2016-09-12
  • 发布:太原PHP培训
  • 来源:码农网

本节主要分析server的启动过程。

Netty是基于Nio实现的,所以也离不开selector、serverSocketChannel、socketChannel和selectKey等,只不过Netty把这些实现都封装在了底层。

从示例可以看出,一切从ServerBootstrap开始。

ServerBootstrap实例中需要两个NioEventLoopGroup实例,分别为boss和work,有不同的分工:
1、 boss负责请求的accept操作。
2、 work负责请求的read、write和处理操作。

NioEventLoopGroup

NioEventLoopGroup主要负责管理eventLoop的生命周期,eventLoop数量默认为处理器个数的两倍。

<a style='color:blue' href='http://ty.php.tedu.cn'>太原php培训</a>班
NioEventLoopGroup

继承关系如下:

太原php培训班
NioEventLoopGroup

NioEventLoopGroup构造方法:

太原php培训机构

MultithreadEventLoopGroup构造方法:

太原php培训班

其中 DEFAULT_EVENT_LOOP_THREADS 为处理器数量的两倍。

MultithreadEventExecutorGroup是核心,管理eventLoop的生命周期,先看看其中几个变量。
1、children:EventExecutor数组,保存eventLoop。
2、chooser:从children中选取一个eventLoop的策略。

构造方法:

太原php培训

太原php培训班

1、 根据数组的大小,采用不同策略初始化chooser。
如果大小为2的幂次方,则采用PowerOfTwoEventExecutorChooser;否则使用GenericEventExecutorChooser。
判断一个数是否是2的幂次方的方法,觉得很赞。

太原php培训班

2、newChild方法重载,初始化EventExecutor时,实际执行的是NioEventLoopGroup中的newChild方法,所以,children元素的实际类型为NioEventLoop。


接下去看看NioEventLoop类。

上一篇:太原php培训:能让你少写1000行代码的20个正则表达式
下一篇:太原php培训班:深入浅出Netty——服务启动(2)

PHP中十六个魔术方法详解(三)

JavaScript 与 Java、PHP 的比较

太原php培训资源站

太原PHP编程开发并发编程槽与坑

选择城市和中心
贵州省

广西省

海南省