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文件被解压缩时,每个条目文件都会在这些线程池中执行和加密。[unzip->加密(池(->zip]
当我在eclipse中进行UNIT测试(只进行unzip->encrypt->zip(时,它相对于顺序处理(我的旧项目(显示出了良好的性能(高出30%(。但在Jboss中部署项目后,该部分(unzip->encrypt->zip(的性能显示出略好(5%(,或者与顺序处理相同。有时它更低。*在Linux和Windows 上测试
我想知道为什么结果会是这样。我需要解决这个问题。。我可以将队列LinkedBlockingQueue更改为另一个吗??任务线程可以异步运行??
请给出答案或提示。。
干杯,伙计!!!
很可能您正在最大限度地使用共享资源,例如对磁盘或三级缓存的读写速度。这些东西会阻止你有效地使用更多的CPU。为了解决这个问题,你必须弄清楚你的瓶颈是什么。