все.Я тестирую несколько простых примеров, но обнаружив, что если я установлю размер пула рабочих потоков с фиксированным 2 при запуске NIOServer, а затем попытаюсь подключить netty-сервер с помощью еще 2 соединений tcp (подключение и не закрытие), я обнаружу, что 3-е и 3-е подключение + могутподключите сервер, но операция записи будет заблокирована, отметив переход в мой обработчик.Только если я закрою 1-е или 2-е соединение, 3-й запрос на запись может попасть в мой обработчик, и мой хандер ничего не сделает, просто напечатает helloworld.
Основной код:
ServerBootstrap bootstrap = new ServerBootstrap(new NioServerSocketChannelFactory(Executors.newSingleThreadExecutor(),
Executors.newFixedThreadPool(2)));
bootstrap.setPipelineFactory(new DispatchServerPipeLineFactory());
bootstrap.setOption("child.tcpNoDelay", true);
bootstrap.setOption("child.keepAlive", true);
bootstrap.bind(new InetSocketAddress(8080));
только один код обработчика:
@Override
public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
System.out.println("hello");
super.messageReceived(ctx, e);
}
Кто-нибудь может мне помочь?я должен использовать Executors.newCachedThreadPool ()?