Java多线程不关闭线程

Java多线程不关闭线程,java,Java,我在命令行应用程序中有以下代码。循环完成后,我的应用程序仍在运行。为什么它没有关闭。从日志中,我可以看到endIndex已达到。但应用程序仍在运行 Executor exec = Executors.newFixedThreadPool(4); for (int i = startIndex; i <= endIndex; i++) { final String spURL = urlPart + i; Runnable requestHandler =

我在命令行应用程序中有以下代码。循环完成后,我的应用程序仍在运行。为什么它没有关闭。从日志中,我可以看到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);
    }
Executor exec=Executors.newFixedThreadPool(4);
对于(inti=startIndex;i试试这个

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

您需要在循环后关闭执行器(理想情况下是在
finally
块中):

exec.shutdown()
exec.shutdownNow()

能否确保函数
getImageForURL
每次都返回?