有没有办法在没有先将Executor
转换为ExecutorService
的情况下关闭Java中的Exx
?基本上我有一个名为implements Executor
的班级Executor
。我想关闭Exx。我该怎么办?基本上,我需要知道如何关闭class Exx implements Executor{
@Override
public void execute(Runnable r) {
new Thread(r).start();
}
}
。
编辑:示例:
{{1}}
答案 0 :(得分:3)
特定接口本质上的Executor
不是需要关闭的东西。例如,以下是Executor
的最基本实现。
class NearlyPointlessExecutor implements Executor {
public void execute(Runnable r) {
r.run();
}
}
显然,在上面的代码中,没有什么比这更复杂,任何事情都需要关闭,但提供的类完全遵循Executor
接口。
如果您的实施确实需要关闭,那么您可以选择制作自己的界面或实施ExecutorService
。
问题编辑更新:
对于提供的代码,将无法关闭正在创建的线程,因为在集合中不会保留对它们的引用。
但是,有一个解决方案,提供的实现与使用Executors.newCachedThreadPool提供的实现基本相同。放弃您自己的实现并使用此实现。