博客
关于我
Netty框架的服务端开发中创建EventLoopGroup对象时线程数量源码解析
阅读量:791 次
发布时间:2023-02-15

本文共 716 字,大约阅读时间需要 2 分钟。

1、NioEventLoopGroup与Reactor线程模型的对应

netty的程序的启动(在服务端一般是两个NioEventLoopGroup线程池,一个boss, 一个worker; 对于客户端一般是一个线程池)。

单线程模型:下面直接给出配置的实例:

EventLoopGroup bossGroup = new NioEventLoopGroup(1);ServerBootstrap b = new ServerBootstrap();b.group(bossGroup) .channel(NioServerSocketChannel.class);//.....

上面实例化了一个NIOEventLoopGroup,构造参数是1表示是单线程的线程池。然后接着我们调用 b.group(bossGroup) 设置了服务器端的 EventLoopGroup。 有些朋友可能会有疑惑: 我记得在启动服务器端的 Netty 程序时, 是需要设置 bossGroup 和 workerGroup 的,为什么这里就只有一个 bossGroup?  其实很简单, ServerBootstrap 重写了 group 方法:

@Overridepublic ServerBootstrap group(EventLoopGroup group) {    return group(group, group);}

因此,当传入一个 group 时, 那么 bossGroup 和 workerGroup 就是同一个 NioEventLoopGroup 了。这时候,因为 bossGroup 和 workerGroup 就是同一个 Ni

转载地址:http://zvcfk.baihongyu.com/

你可能感兴趣的文章