限制 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 到文档。
目前,您正在无限制地创建它,因此线程正在无限制地增长。
我正在尝试在基于服务器 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 到文档。
目前,您正在无限制地创建它,因此线程正在无限制地增长。