看过mina源码的朋友应该都知道在mina中默认实现了一个SimpleIoProcessorPool类,里边对线程池数量的定义是:
private static final int DEFAULT_SIZE = Runtime.getRuntime().availableProcessors() + 1;
小弟想问下设置成cpu的数量+1是基于什么考虑的,有何意义?
感觉上有点像骆驼上压最后一根稻草,可能是为了最低限度确保cpu能够完全利用起来。
线程太多存在资源互斥等开销,太少又无法完全利用系统性能。