Java中如何使用ExecutorService等待所有线程完成呢?

戚薇 Java经验 发布时间:2023-07-13 09:23:36 阅读数:1490 1
下文笔者讲述ExecutorService等待所有线程完成的方法分享,如下所示
在使用Executor时
   我们可以使用shutdown()或shutdownNow()方法将其关闭
   但是这种方式,不会等到所有线程都停止运行

等待所有线程完成后运行
    我们可以使用awaitTermination()方法实现
例:使用awaitTermination()方法,等待所有线程完成后运行
 阻塞线程
 直到所有任务完成执行或达到指定的超时

public void awaitAfterShutdown(ExecutorService threadPool) {
    threadPool.shutdown();
    try {
        if (!threadPool.awaitTermination(60, TimeUnit.SECONDS)) {
            threadPool.shutdownNow();
        }
    } catch (InterruptedException ex) {
        threadPool.shutdownNow();
        Thread.currentThread().interrupt();
    }
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202307/16892114517074.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者