在Java中没有executorService的关闭执行程序

时间:2012-07-25 17:35:44

标签: java shutdown executor

有没有办法在没有先将Executor转换为ExecutorService的情况下关闭Java中的Exx?基本上我有一个名为implements Executor的班级Executor。我想关闭Exx。我该怎么办?基本上,我需要知道如何关闭class Exx implements Executor{ @Override public void execute(Runnable r) { new Thread(r).start(); } }

编辑:示例:

{{1}}

1 个答案:

答案 0 :(得分:3)

特定接口本质上的Executor不是需要关闭的东西。例如,以下是Executor的最基本实现。

class NearlyPointlessExecutor implements Executor {
    public void execute(Runnable r) {
        r.run();
    }
}

显然,在上面的代码中,没有什么比这更复杂,任何事情都需要关闭,但提供的类完全遵循Executor接口。

如果您的实施确实需要关闭,那么您可以选择制作自己的界面或实施ExecutorService

问题编辑更新:

对于提供的代码,将无法关闭正在创建的线程,因为在集合中不会保留对它们的引用。

但是,有一个解决方案,提供的实现与使用Executors.newCachedThreadPool提供的实现基本相同。放弃您自己的实现并使用此实现。