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

时间:2017-12-21 06:00:51

标签: java io netty

我试图在基于服务器Netty的应用程序中使用Oio。我目前正在使用它如下:

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中的线程数?

1 个答案:

答案 0 :(得分:2)

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

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

Link到文档。

目前,您正在创建它而没有任何限制,因此线程正在增长而没有任何限制。