我试图在基于服务器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中的线程数?
答案 0 :(得分:2)
您可以尝试使用限制创建OioEventGroup,即使用以下任一构造函数
public OioEventLoopGroup(int maxChannels)
或
public OioEventLoopGroup(int maxChannels,
java.util.concurrent.ThreadFactory threadFactory)
Link到文档。
目前,您正在创建它而没有任何限制,因此线程正在增长而没有任何限制。