簡體   English   中英

Java多線程沒有關閉線程

[英]Java multithreading not closing threads

我在命令行應用程序中有以下代碼。 循環完成后,我的應用程序仍在運行。 為什么不關閉。 從日志中,我可以看到endIndex已達到。 但該應用程序仍在運行?

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);
    }

嘗試這個

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

您需要在循環之后關閉執行程序(理想情況下在finally塊中):
exec.shutdown()exec.shutdownNow()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM