gpt4 book ai didi

java - 为什么netty只使用一个线程?

转载 作者:行者123 更新时间:2023-12-01 04:50:04 25 4
gpt4 key购买 nike

我正在尝试编写一个 udp 服务器。我以这种方式配置我的 Bootstrap :

ChannelFactory factory = new NioDatagramChannelFactory(Executors.newCachedThreadPool());

ConnectionlessBootstrap bootstrap = new ConnectionlessBootstrap(factory);
bootstrap.setPipelineFactory(new UDPServerPipelineFactory());
bootstrap.setOption("sendBufferSize", 1048576*2);
bootstrap.setOption("receiveBufferSize", 1048576*2);
bootstrap.setOption("tcpNoDelay", true);
bootstrap.setOption("receiveBufferSizePredictorFactory", new AdaptiveReceiveBufferSizePredictorFactory(1048576, 1048576, 2000000));
bootstrap.bind(new InetSocketAddress(11000));

以这种方式进行管道:

@Override
public ChannelPipeline getPipeline() throws Exception
{
ChannelPipeline pipeline = Channels.pipeline();

pipeline.addFirst("execution-handler", new ExecutionHandler(new OrderedMemoryAwareThreadPoolExecutor(16, 2333444, 3444333)));
pipeline.addLast("decoder", new StringDecoder());
pipeline.addLast("counter", new UDPHandler());

return pipeline;
}

但是我的 UDPHandler 始终仅由一个线程管理。我做错了什么?

最佳答案

请检查这个http://lists.jboss.org/pipermail/netty-users/2009-September/001350.html

今天我们遇到了同样的问题,对于UDP,只有一个 channel 有一个worker。

因此只使用了一个线程。不知道为什么 Netty 不提供一些只有一个线程的特殊工厂来让事情变得清晰。

关于java - 为什么netty只使用一个线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15136382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com