当前位置: 首页 > news >正文

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);}
# 输出结果 任务开始执行 超时,任务未完成 任务执行完成
http://www.cnnetsun.cn/news/151016.html

相关文章:

  • FaceFusion更新日志追踪:每月都有新功能上线
  • (Open-AutoGLM实战白皮书)首次公开:跨平台任务调度的7种高效模式
  • 分布式幂等性:30字讲透核心要点
  • FaceFusion能否对接OneDrive?微软生态无缝衔接
  • 【AI模型部署必读】:Open-AutoGLM云端推理速度提升3倍的秘密路径
  • 为什么顶尖团队开始弃用Monica Manus改用Open-AutoGLM?真相在这里
  • 为什么顶尖大厂开始从Appium转向Open-AutoGLM?这3个关键点你必须知道
  • Open-AutoGLM三大黑科技揭秘:彻底摆脱RPA僵化操作的束缚
  • FaceFusion能否处理带有投影变形的墙面视频?
  • 13、全面掌握 Internet Explorer 配置:个性化与优化指南
  • 14、深入了解Internet Explorer的配置与维护
  • 27、常见连接问题解析与解决指南
  • 28、网络资源安全权限设置与故障排除全解析
  • 29、Windows系统安全与权限管理全解析
  • 34、Windows XP 多用户、多引导和联网计算机故障排除及 SP2 安全增强
  • 视觉识别架构之争,Open-AutoGLM与Mobile-Agent的底层逻辑差异,90%开发者都忽略了
  • Open-AutoGLM与Monica Manus执行效率对比(2024最新 benchmark 数据曝光)
  • 【AI模型选型避坑指南】:Open-AutoGLM与AutoGLM沉思机制的3个致命误区
  • FaceFusion开源项目获得Linux基金会支持
  • Ruoyi-AI技术架构完全重构:从单体到云原生的终极指南
  • 41、Windows PE:功能、使用与定制全解析
  • FaceFusion人脸融合过渡是否平滑?动态视频测试
  • FaceFusion人脸姿态估计精度高达98.7%,行业领先
  • AutoGLM沉思功能被超越?Open-AutoGLM的7大创新点全曝光
  • FaceFusion能否实现自动情绪增强功能?
  • Open-AutoGLM与RPA的5大核心差异(自动化技术跃迁指南)
  • OSPF协议
  • Rust Web开发终极指南:Cot框架快速入门教程
  • 5大核心功能使YashanDB数据库适应多种场景
  • 5个YashanDB的成功实施经验借鉴与分享