2011-11-17 115 views
0

我在命令行應用程序中具有以下代碼。一旦循環完成,我的應用程序仍在運行。爲什麼它不關閉。從日誌中,我可以看到endIndex已經達到。但該應用程序仍在運行?Java多線程未關閉線程

Executor exec = Executors.newFixedThreadPool(4); 
for (int i = startIndex; i <= endIndex; i++) { 
     final String spURL = urlPart + i; 

     Runnable requestHandler = new Runnable() { 
      @Override 
      public void run() { 
       try { 
        getImageForURL(spURL, 0); 
       } catch (IOException ex) { 
       } catch (Exception ex) { 
       } 
      } 
     }; 
     exec.execute(requestHandler); 
    } 
+0

你能確保該功能'getImageForURL每次都會返回? – Santosh

回答

2

試試這個

ExecutorService e = Executors.newFixedThreadPool(4); 
... 
e.shutdown(); 
0

你需要關機循環之後的執行者(理想情況下finally塊):
exec.shutdown()exec.shutdownNow()