awaitTermination 方法是 Java ExecutorService 接口中的一个方法,它的主要作用是阻塞调用线程,直到满足以下条件之一:
方法签名如下:
boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException;
参数说明:
timeout:等待的最大时间。unit:时间单位,例如 TimeUnit.SECONDS、TimeUnit.MILLISECONDS 等。返回值:
true。false。使用示例:
ExecutorService executorService = Executors.newFixedThreadPool(5);
// 提交任务
for (int i = 0; i < 10; i++) {
executorService.submit(() -> {
// 任务逻辑
});
}
// 关闭 ExecutorService
executorService.shutdown();
try {
// 等待所有任务完成,最多等待 1 小时
boolean terminated = executorService.awaitTermination(1, TimeUnit.HOURS);
if (terminated) {
System.out.println("所有任务已完成");
} else {
System.out.println("等待超时或线程被中断");
}
} catch (InterruptedException e) {
System.out.println("线程被中断");
}
注意:在使用 awaitTermination 方法时,通常需要先调用 shutdown 或 shutdownNow 方法来关闭 ExecutorService。这样可以确保不再接受新的任务,并且已经提交的任务能够正常执行。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。