Я создаю сокет-сервер с использованием 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())
);
Это правильно?
Если это так, существует ли практическое правило для оптимального числа потоков для обработки событий?