2

我英文不太好。但我需要了解 newfixedthreadpool 的 .

enter code here
ExecutorService executorService = new FixedThreadPool().newFixedThreadPool(4);
.....
public class FixedThreadPool {
        private ExecutorService newFixedThreadPool(int nThreads) {   
            return new ThreadPoolExecutor(nThreads, nThreads,   
                    0L, TimeUnit.MILLISECONDS,   
                    new LinkedBlockingQueue<Runnable>());   
        }

}
.....
executorService.execute(new CoreThreadPool(list, resCountClass));

当 zip 文件解压缩时,每个条目文件都会在这些线程池中执行和加密。[解压缩->加密(池)->压缩]

当我在 Eclipse 中进行 UNIT 测试(仅解压缩->加密->压缩)时,它对顺序处理(我的旧项目)表现出良好的性能(高出 30%)。但是项目部署到Jboss后,部分(unzip->encrypt->zip)的性能表现稍微好一点(5%),顺序处理也差不多。有时它更低。*在 Linux 和 Windows 上测试

我想知道为什么结果会这样。我需要解决它.. 我可以将队列 LinkedBlockingQueue 更改为另一个吗?任务线程可以异步运行??

请给出答案或提示..

队友的欢呼声!!!

4

1 回答 1

2

您很可能正在最大限度地使用共享资源,例如您可以读取和写入磁盘或第三级缓存的速度。这些东西会阻止你有效地使用更多的 CPU。为了解决这个问题,你必须弄清楚你的瓶颈是什么。

于 2013-02-05T07:41:54.900 回答