我有一個java程序部署在使用Quartz調度器執行的Weblogic服務器中。該程序每10秒執行一次。在java代碼中,我使用ExcutorService創建了兩個線程,最後我調用了service.shutdown()。但是每次石英調度程序運行程序時,都會通過增加池標識(如「pool-109-thread-1」和「pool-109-thread-2」)來創建一個新的線程池,然後pool-110-thread-1「 。和「池110線程2」因此,這池計數增加是否確定或者我需要改變的東西在我的代碼如下 示例代碼:?`爲什麼執行器服務實施的池數增加?
public void post(){
ExecutorService service = Executors.newFixedThreadPool(2);
for (String filePath : strArray) {
service.submit(new PostImages(postURL,filePath));
}
service.shutDown();
}
`
你不應該每次初始化'ExecutorService'。 – sidgate
好的,但我的代碼中的舊線程池發生了什麼?爲什麼每次執行post()方法時池數都會增加? service.shutdown()不工作? – Xerxis
Hi Xersis:你什麼時候調用post()方法?將此語句從post()方法中移出。 ExecutorService service = Executors.newFixedThreadPool(2);在其他地方調用shutDown()方法。 –