news 2026/6/10 0:24:33

Java 异步转同步方案:使用 CountDownLatch、使用 CyclicBarrier、使用 wait/notify + synchronized

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java 异步转同步方案:使用 CountDownLatch、使用 CyclicBarrier、使用 wait/notify + synchronized

Java 异步转同步方案

准备阶段
  • Student.java
publicclassStudent{publicvoidstudy(StudentStudyObserverstudentStudyObserver){newThread(()->{try{TimeUnit.SECONDS.sleep(5);}catch(InterruptedExceptione){e.printStackTrace();}studentStudyObserver.onFinish();}).start();}}
  • StudentStudyObserver.java
publicinterfaceStudentStudyObserver{voidonFinish();}
1、使用 CountDownLatch
CountDownLatchcountDownLatch=newCountDownLatch(1);Studentstudent=newStudent();student.study(()->{System.out.println("学生学习完了");countDownLatch.countDown();});try{countDownLatch.await();}catch(InterruptedExceptione){e.printStackTrace();}System.out.println("继续执行其他任务");
2、使用 CyclicBarrier
CyclicBarriercyclicBarrier=newCyclicBarrier(2);Studentstudent=newStudent();student.study(()->{System.out.println("学生学习完了");try{cyclicBarrier.await();}catch(InterruptedException|BrokenBarrierExceptione){e.printStackTrace();}});try{cyclicBarrier.await();}catch(InterruptedException|BrokenBarrierExceptione){e.printStackTrace();}System.out.println("继续执行其他任务");
3、使用 wait/notify + synchronized
privatevolatilebooleanfinished=false;
Objectlock=newObject();Studentstudent=newStudent();student.study(()->{synchronized(lock){System.out.println("学生学习完了");finished=true;lock.notify();}});try{synchronized(lock){while(!finished){lock.wait();}}}catch(InterruptedExceptione){e.printStackTrace();}System.out.println("继续执行其他任务");
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 14:24:36

从单图到批量抠图|基于CV-UNet Universal Matting镜像的完整实践

从单图到批量抠图|基于CV-UNet Universal Matting镜像的完整实践 1. 引言:图像抠图的技术演进与现实需求 随着数字内容创作的普及,图像背景移除(Image Matting)已成为电商、设计、影视后期等领域的基础操作。传统手动…

作者头像 李华
网站建设 2026/6/8 22:40:09

iPhone 4终极降级指南:轻松回滚到iOS 5.1.1

iPhone 4终极降级指南:轻松回滚到iOS 5.1.1 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to downgrade/restore, save SHSH blobs, and jailbreak legacy iOS devices 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-Kit 你是否怀念那个经…

作者头像 李华
网站建设 2026/6/9 22:46:13

Python OCC 3D建模终极指南:从零基础到快速上手

Python OCC 3D建模终极指南:从零基础到快速上手 【免费下载链接】pythonocc-core tpaviot/pythonocc-core: 是一个基于 Python 的 OpenCASCADE (OCCT) 几何内核库,提供了三维几何形状的创建、分析和渲染等功能。适合对 3D 建模、CAD、CAE 以及 Python 有…

作者头像 李华
网站建设 2026/6/9 23:42:58

Qwen2.5-0.5B保姆级教程:模型微调调参

Qwen2.5-0.5B保姆级教程:模型微调调参 1. 引言 1.1 轻量级大模型的现实需求 随着边缘计算和终端智能设备的普及,对高效、低资源消耗的语言模型需求日益增长。传统大模型虽然性能强大,但其高昂的算力成本和内存占用限制了在移动设备或嵌入式…

作者头像 李华
网站建设 2026/6/9 13:46:30

Nintendo Switch全能文件管理工具:NSC_BUILDER深度使用指南

Nintendo Switch全能文件管理工具:NSC_BUILDER深度使用指南 【免费下载链接】NSC_BUILDER Nintendo Switch Cleaner and Builder. A batchfile, python and html script based in hacbuild and Nuts python libraries. Designed initially to erase titlerights enc…

作者头像 李华
网站建设 2026/6/9 18:42:58

网盘直链下载助手:八大平台真实地址一键获取完整指南

网盘直链下载助手:八大平台真实地址一键获取完整指南 【免费下载链接】Online-disk-direct-link-download-assistant 可以获取网盘文件真实下载地址。基于【网盘直链下载助手】修改(改自6.1.4版本) ,自用,去推广&#…

作者头像 李华