Я создаю socketserver, используя Apache Mina, и я пытаюсь понять конфигурацию модели потока. Я сейчас читаю:Java socketserver с помощью Apache Mina - как настроить потоки?
http://mina.apache.org/configuring-thread-model.html
Как я понимаю; то лучше использовать многопоточность для каждого IOService, что-то вроде:
SocketAcceptor acceptor = new SocketAcceptor(
Runtime.getRuntime().availableProcessors() + 1,
Executors.newCachedThreadPool()
);
Я также понимаю, что лучше использовать несколько потоков для обслуживания событий в цепочке фильтров:
SocketAcceptor acceptor = ...;
DefaultIoFilterChainBuilder filterChainBuilder =
acceptor.getDefaultConfig().getFilterChain();
filterChainBuilder.addLast("threadPool",
new ExecutorFilter(Executors.newCachedThreadPool())
);
Правильно ли это?
Если да, существует ли правило большого пальца для оптимального количества потоков для обработки событий?
Да, вы должны использовать ExecutorFilter. – accuya