【发布时间】:2016-06-26 23:27:38
【问题描述】:
我的执行器服务代码如下所示。我正在执行多个线程。但是由于某些原因,程序没有退出,因为根据日志有一些线程处于等待状态。如果我使用 Thread.start(),那么我就没有这个问题。我只有在使用 ExecutorService 时才会遇到问题。谁能告诉我如何在不关闭 ExecutorService 的情况下关闭所有成功执行的线程。
class ExecutorExample{
public static void main(){
File folder = new File("/home/agasthyt/agasthyt");
File[] listOfFiles = folder.listFiles();
for (int i = 0; i < listOfFiles.length; i++) {
Thread1 thread1=new Thread1(listOfFiles[i]);
es.execute(thread1);
}
}
}
类 Thread1 扩展 Thread{public void run(){......}}
【问题讨论】:
-
如果您不需要线程返回(我认为您这样做),您可以将它们设置为守护进程。
-
不,看起来
shutdown()是必需的。你必须调用它。
标签: java multithreading concurrency