news 2026/2/7 17:53:28

Java 多线程编程 - 线程池 awaitTermination 方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java 多线程编程 - 线程池 awaitTermination 方法

awaitTermination 方法

1、基本介绍
booleanawaitTermination(longtimeout,TimeUnitunit)throwsInterruptedException;
参数类型说明
timeoutlong等待时间
unitTimeUnit时间单位
返回值说明
true线程池在超时前已终止
false超时后线程池仍未终止
  1. awaitTermination 是 Java 线程池中用于等待任务执行完成的方法

  2. awaitTermination 方法会阻塞调用线程,直到所有任务都执行完成、发生超时、调用线程被中断

2、演示
  1. 线程池执行任务,任务耗时 5 秒,主线程 2 秒后,调用 awaitTermination 方法,等待 10 秒,线程池在超时前已终止
ExecutorServiceexecutorService=Executors.newSingleThreadExecutor();executorService.execute(()->{System.out.println("任务开始执行");try{Thread.sleep(5*1000);}catch(InterruptedExceptione){e.printStackTrace();}System.out.println("任务执行完成");});try{Thread.sleep(2*1000);}catch(InterruptedExceptione){e.printStackTrace();}executorService.shutdown();try{booleanresult=executorService.awaitTermination(10,TimeUnit.SECONDS);if(result){System.out.println("所有任务都已完成");}else{System.out.println("超时,任务未完成");}}catch(InterruptedExceptione){thrownewRuntimeException(e);}
# 输出结果 任务开始执行 任务执行完成 所有任务都已完成
  1. 线程池执行任务,任务耗时 10 秒,主线程 2 秒后,调用 awaitTermination 方法,等待 5 秒,线程池在超时后仍未终止
ExecutorServiceexecutorService=Executors.newSingleThreadExecutor();executorService.execute(()->{System.out.println("任务开始执行");try{Thread.sleep(10*1000);}catch(InterruptedExceptione){e.printStackTrace();}System.out.println("任务执行完成");});try{Thread.sleep(2*1000);}catch(InterruptedExceptione){e.printStackTrace();}executorService.shutdown();try{booleanresult=executorService.awaitTermination(5,TimeUnit.SECONDS);if(result){System.out.println("所有任务都已完成");}else{System.out.println("超时,任务未完成");}}catch(InterruptedExceptione){thrownewRuntimeException(e);}
# 输出结果 任务开始执行 超时,任务未完成 任务执行完成
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/6 11:34:23

FaceFusion更新日志追踪:每月都有新功能上线

AI换脸技术的边界与工程伦理:为何专业分工不可逾越在人工智能技术迅猛发展的今天,我们时常看到各类AI工具以前所未有的速度迭代更新——FaceFusion每月上线新功能、DeepNude类项目引发伦理争议、Stable Diffusion开放模型催生创作革命。这些现象背后&…

作者头像 李华
网站建设 2026/2/5 22:35:40

(Open-AutoGLM实战白皮书)首次公开:跨平台任务调度的7种高效模式

第一章:Open-AutoGLM 跨应用任务处理竞品分析在跨应用自动化任务处理领域,多个框架和平台已展现出不同的技术路径与能力边界。Open-AutoGLM 作为新兴的开源解决方案,其核心优势在于结合大语言模型(LLM)驱动的任务解析与…

作者头像 李华
网站建设 2026/2/5 8:56:29

分布式幂等性:30字讲透核心要点

幂等性处理是分布式系统和微服务架构中保证数据一致性与系统健壮性的核心概念。我们来系统性地梳理一下。一、什么是幂等性?定义:一个操作(或接口)被重复执行多次所产生的效果,与仅执行一次所产生的效果完全相同。核心…

作者头像 李华
网站建设 2026/2/6 3:53:47

FaceFusion能否对接OneDrive?微软生态无缝衔接

FaceFusion 与 OneDrive 的无缝集成:打通 AI 生成与办公生态的“最后一公里”在内容创作日益依赖人工智能的今天,一个现实问题摆在开发者和企业面前:我们如何让 AI 工具产出的结果,不再沉睡于本地磁盘,而是自动进入用户…

作者头像 李华
网站建设 2026/2/7 2:44:22

【AI模型部署必读】:Open-AutoGLM云端推理速度提升3倍的秘密路径

第一章:Open-AutoGLM 端侧 vs 云端部署性能权衡在边缘计算与云计算并行发展的背景下,Open-AutoGLM 的部署策略需在端侧与云端之间做出性能与效率的权衡。端侧部署能够显著降低推理延迟、保障数据隐私,并减少对网络带宽的依赖;而云…

作者头像 李华
网站建设 2026/2/5 22:28:59

为什么顶尖团队开始弃用Monica Manus改用Open-AutoGLM?真相在这里

第一章:Open-AutoGLM 与 Monica Manus 执行效率对比在自动化大语言模型推理任务中,Open-AutoGLM 和 Monica Manus 是当前备受关注的两个开源框架。两者均支持动态指令解析与多轮对话管理,但在执行效率层面表现出显著差异。架构设计差异 Open-…

作者头像 李华