【问题标题】:Restricting the number of threads in Oio Netty server限制 Oio Netty 服务器中的线程数
【发布时间】:2017-12-21 16:36:12
【问题描述】:

我正在尝试在基于 Server 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中的线程数?

【问题讨论】:

    标签: java io netty


    【解决方案1】:

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

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

    Link 到文档中。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多