课程咨询 :0351-5608878

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

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

  • 本节主要分析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高级开发名企定制班(剩2个名额)

php高级开发名企定制班(剩2个名额)

开班日期:06.30

php高级开发周末班(剩5个名额)

php高级开发周末班(剩5个名额)

开班日期:06.30

php高级开发免费试听(剩5个名额)

php高级开发免费试听(剩5个名额)

开班日期:06.30

高级开发工程师精品班

高级开发工程师精品班

开班日期:06.30

  • 地址:山西省太原市小店区学府街长治路高新国际A座24层
  • 课程培训电话:0351-5608878     全国服务监督电话:400-111-8989
  • 服务邮箱 tousu@tedu.cn
  • 2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56