我正在使用 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())
);
它是否正确?
如果是这样,是否有最佳线程数来处理事件的经验法则?