判断一个线程是否已经执行可以使用.isAlive()方法判断,那判断线程池executorService里面是否有正在执行的任务该怎么办呢,请前辈指教,网上没有查到
2 回答
跃然一笑
TA贡献1826条经验 获得超6个赞
Futurefuture=executorService.submit(newCallable(){publicObjectcall()throwsException{System.out.println("AsynchronousCallable");return"CallableResult";}});System.out.println("future.get()="+future.get());异步计算的发起线程(控制线程):负责异步计算任务的分解和发起,把分解好的任务交给异步计算的work线程去执行,发起异步计算后,发起线程可以获得Futrue的集合,从而可以跟踪异步计算结果。参考:Java并发编程-Executor,Executors,ExecutorService,CompletionServie,Future,Callable
智慧大石
TA贡献1946条经验 获得超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
提交
取消