限制 Oio Netty 服务器中的线程数

Restricting the number of threads in Oio Netty server

我正在尝试在基于服务器 Netty 的应用程序中使用 Oio。 I\m 目前使用情况如下:

String host: String = //...
int port = //...

ServerBootstrap server = new ServerBootstrap()
  .group(new OioEventLoopGroup(), new OioEventLoopGroup())
  .localAddress(new InetSocketAddress(host, port))
    .channel(OioServerSocketChannel.class)
    .childHandler(new ChannelInitializer<Channel>() {
      public void initChannel(Channel ch){
         ch.pipeline()
        //adding handlers
      }
    })
server.bind().sync()

问题是线程的数量会无限制地增长。但我想将其限制为 64 个。如果超过 64 个客户端尝试连接,我想做一些事情(可能会拒绝连接)

Netty Oio有没有办法控制线程数?

您可以尝试创建有限制的 OioEventGroup,即使用以下任一构造函数
public OioEventLoopGroup(int maxChannels)
或者

public OioEventLoopGroup(int maxChannels,
                         java.util.concurrent.ThreadFactory threadFactory)

Link 到文档。

目前,您正在无限制地创建它,因此线程正在无限制地增长。