【发布时间】:2016-01-15 12:03:10
【问题描述】:
我在 Weblogic 服务器中部署了一个 java 程序,该程序使用 Quartz 调度程序执行。该程序每 10 秒执行一次。在 java 代码中,我使用 ExcutorService 创建了两个线程,最后我调用了 service.shutdown()。但是每次石英调度程序运行程序时,它都会通过增加池 id 来创建一个新的线程池,例如“pool-109-thread-1”和“pool-109-thread-2”,然后是 pool-110-thread-1”和“pool-110-thread-2”。所以这个池数正在增加。可以吗,还是我需要在我的代码中更改某些内容? 下面的示例代码:`
public void post(){
ExecutorService service = Executors.newFixedThreadPool(2);
for (String filePath : strArray) {
service.submit(new PostImages(postURL,filePath));
}
service.shutDown();
}
`
【问题讨论】:
-
你不应该每次都初始化
ExecutorService。 -
好的,但是我的代码中的旧线程池会发生什么?为什么每次执行 post() 方法时池数都会增加? service.shutdown() 不工作吗?
-
嗨,Xersis:你什么时候调用 post() 方法?将此语句移出 post() 方法。 ExecutorService 服务 = Executors.newFixedThreadPool(2);在其他地方调用 shutdown() 方法。
标签: java multithreading executorservice