判断一个线程是否已经执行可以使用.isAlive()方法判断,那判断线程池executorService里面是否有正在执行的任务该怎么办呢,请前辈指教,网上没有查到
2 回答
米脂
TA贡献1836条经验 获得超3个赞
Future future = executorService.submit(new Callable(){
public Object call() throws Exception {
System.out.println("Asynchronous Callable");
return "Callable Result";
}
});
System.out.println("future.get() = " + future.get());
- 异步计算的发起线程(控制线程):负责异步计算任务的分解和发起,把分解好的任务交给异步计算的work线程去执行,发起异步计算后,发起线程可以获得Futrue的集合,从而可以跟踪异步计算结果。
参考:Java并发编程 - Executor,Executors,ExecutorService, CompletionServie,Future,Callable
慕容3067478
TA贡献1773条经验 获得超3个赞
首先调用 shutdown 或 shutdownNow,然后调用isTerminated,返回:如果有任务正在执行,则返回false。
exe.shutdown();
System.out.println("shutdown():启动一次顺序关闭,执行以前提交的任务,但不接受新任务。");
while(true){
if(exe.isTerminated()){
System.out.println("所有的子线程都结束了!");
break;
}
Thread.sleep(1000);
}
添加回答
举报
0/150
提交
取消
