在编写netty应用程序时,我不确定应该使用哪个线程池作为管道处理程序。
要么我就用
// OrderedMemoryAwareThreadPoolExecutor impl
OrderedMemoryAwareThreadPoolExecutor pipelineExecutor = new OrderedMemoryAwareThreadPoolExecutor(
200, 1048576, 1073741824, 100, TimeUnit.MILLISECONDS,
new NioDataSizeEstimator(), new NioThreadFactory("NioPipeline"));
或
ThreadPoolExecutor pool = new MemoryAwareThreadPoolExecutor(
16, 65536, 1048576, 30, TimeUnit.SECONDS,
new MyObjectSizeEstimator(),
Executors.defaultThreadFactory());
不确定两者之间的区别。
如有任何帮助,我们将不胜感激。
我认为从javadocs开始就很清楚了。OrderedMemorywareThreadPoolExecutor将确保事件按通道的"顺序"执行,而MemorywareThreadPoolExecutoor则不这样做。