【2013-12-16】《Java编程思想》读书笔记:CountDownLatch

发布时间:2026/7/29 14:59:11

【2013-12-16】《Java编程思想》读书笔记:CountDownLatch
[历史归档]本文原发布于 cstriker1407.info 个人博客内容为历史存档仅供参考。发布时间2013-12-16 标题《Java编程思想》读书笔记CountDownLatch分类编程 / java / think_in_java 标签java·think in java·多线程·CountDownLatch《Java编程思想》读书笔记CountDownLatch最近在整理 Java 的多线程相关的技术这里备份下关于【 CountDownLatch 】代码。github【 https://github.com/cstriker1407/think_in_java 】CountDownLatch主要用来完成一个计数器锁的业务即计数完成前线程会等待。这里备份下代码publicclassCountDownLatchTest{publicstaticvoidtest(){CountDownLatchstartSignalnewCountDownLatch(1);CountDownLatchdoneSignalnewCountDownLatch(3);for(inti0;i3;i){newThread(newWorker(startSignal,doneSignal)).start();}try{Thread.sleep(1000);}catch(InterruptedExceptione1){e1.printStackTrace();}System.out.println(the runnables are inited);System.out.println(the runnables are free to start);startSignal.countDown();try{doneSignal.await();}catch(InterruptedExceptione){e.printStackTrace();}}}classWorkerimplementsRunnable{privatestaticintcount0;privateintidx0;privatefinalCountDownLatchstartSignal;privatefinalCountDownLatchdoneSignal;Worker(CountDownLatchstartSignal,CountDownLatchdoneSignal){this.startSignalstartSignal;this.doneSignaldoneSignal;idxcount;}publicvoidrun(){try{System.out.println(the runnable is begin to init:idx);startSignal.await();System.out.println(the runnable is begin to start:idx);Thread.sleep(2000);doneSignal.countDown();System.out.println(the runnable is finish:idx);}catch(InterruptedExceptionex){}// return;}}日志显示the runnable is begin to init:0 the runnable is begin to init:2 the runnable is begin to init:1 the runnables are inited the runnables are free to start the runnable is begin to start:2 the runnable is begin to start:1 the runnable is begin to start:0 the runnable is finish:1 the runnable is finish:0 the runnable is finish:2

相关新闻

UG95 Cat.1模组与TM4C129XKCZAD微控制器的物联网开发指南

UG95 Cat.1模组与TM4C129XKCZAD微控制器的物联网开发指南

2026/7/29 14:49:11

1. 项目背景与核心组件解析 在物联网和远程通信领域,突破物理空间限制一直是工程师们追求的目标。UG95作为一款高性能的Cat.1通信模组,与TM4C129XKCZAD这款基于ARM Cortex-M4F的微控制器相结合,为开发者提供了构建跨地域智能设备的黄金组合。…

LTE Cat 1bis与STM32L152RE物联网开发实战

LTE Cat 1bis与STM32L152RE物联网开发实战

2026/7/29 14:49:11

1. 项目背景与核心需求解析 在物联网设备开发领域,LTE Cat 1bis技术正在成为中低速率场景下的理想选择。LEXI-R10401D模块与STM32L152RE的组合,特别适合需要中等数据速率、低功耗和可靠连接的物联网应用场景。这个方案完美适配智能电表、资产追踪、工业传…

NABI黑客马拉松参赛全攻略:从团队组建到演示实战的极限开发指南

NABI黑客马拉松参赛全攻略:从团队组建到演示实战的极限开发指南

2026/7/29 14:49:11

1. 项目概述:一场跨越国界的开发者盛会 “NABI黑客马拉松直播贴 Day0出发”,这个标题对于很多开发者来说,本身就充满了吸引力。它不仅仅是一个简单的行程记录,更是一个信号,标志着一位技术实践者即将投入到一场高强度、…

5分钟找回丢失密码:ArchivePasswordTestTool帮你轻松破解加密压缩包

5分钟找回丢失密码:ArchivePasswordTestTool帮你轻松破解加密压缩包

2026/7/29 18:19:19

5分钟找回丢失密码:ArchivePasswordTestTool帮你轻松破解加密压缩包 【免费下载链接】ArchivePasswordTestTool 利用7zip测试压缩包的功能 对加密压缩包进行自动化测试密码 项目地址: https://gitcode.com/gh_mirrors/ar/ArchivePasswordTestTool 你是否曾经…

PixiJS Live2D插件完整指南:如何在Web项目中集成虚拟角色动画

PixiJS Live2D插件完整指南:如何在Web项目中集成虚拟角色动画

2026/7/29 18:19:19

PixiJS Live2D插件完整指南:如何在Web项目中集成虚拟角色动画 【免费下载链接】pixi-live2d-display A PixiJS plugin to display Live2D models of any kind. 项目地址: https://gitcode.com/gh_mirrors/pi/pixi-live2d-display 你是否曾想过在Web应用中添加…

第20篇:COZE高效办公【仓库 - 零售行业 - 库存管理与补货提醒工作流】深入探索

第20篇:COZE高效办公【仓库 - 零售行业 - 库存管理与补货提醒工作流】深入探索

2026/7/29 18:19:19

目录 使用 COZE 实现《仓库 - 零售行业 - 库存管理与补货提醒》工作流 一、工作流定位与目标 二、核心功能模块设计 1. 库存数据采集与管理模块 2. 智能库存分析与预测模块 3. 智能补货策略制定模块 4. 补货提醒与执行跟踪模块 三、COZE 工作流执行流程 1. 库存数据采…

Qlib:从AI量化研究到实战部署的完整解决方案

Qlib:从AI量化研究到实战部署的完整解决方案

2026/7/29 18:19:19

Qlib:从AI量化研究到实战部署的完整解决方案 【免费下载链接】qlib Qlib is an AI-oriented Quant investment platform that aims to use AI tech to empower Quant Research, from exploring ideas to implementing productions. Qlib supports diverse ML modeli…

老Mac重获新生:OpenCore Legacy Patcher完整指南让旧设备免费运行最新macOS

老Mac重获新生:OpenCore Legacy Patcher完整指南让旧设备免费运行最新macOS

2026/7/29 18:19:19

老Mac重获新生:OpenCore Legacy Patcher完整指南让旧设备免费运行最新macOS 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你是否还在为老款Mac无…

STM32 OLED 显示屏驱动与调试入门实战指南

STM32 OLED 显示屏驱动与调试入门实战指南

2026/7/29 18:09:19

本文基于 STM32 标准库,从零讲解 OLED 显示屏的驱动原理、硬件接线、常用 API 及实战代码,帮助初学者快速在屏幕上"打出"第一行字。 一、为什么要学 OLED? 在嵌入式开发中,"调试"是永恒的主题。常见的调试方…

[具身智能-649]:个人电脑搭建 RTSP 服务完整方案(Windows / Ubuntu 双平台,适配 RDK X5 rtsp2display 调试)

[具身智能-649]:个人电脑搭建 RTSP 服务完整方案(Windows / Ubuntu 双平台,适配 RDK X5 rtsp2display 调试)

2026/7/28 13:30:18

目标:电脑作为RTSP 服务端,循环推送 H264/H265 视频流; RDK X5 通过 rtsp2display 拉流预览,完全不需要在开发板编译 live555。 提供两套成熟方案: ✅ 方案 A:FFmpeg(最简单,优先推…

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

2026/7/28 16:04:36

一、背景与测试方案 在实际项目交付中,PDF文件合并与版权保护水印的叠加是一个高频但容易被低估的技术需求。典型的处理链路涉及:多源PDF的文件流合并、页面级水印渲染(含透明度混合与图层叠加)、输出文件体积控制。看似简单的操作…

PDF拆分压完图糊了?2026国内免费实测,档案员都在用的组合方案

PDF拆分压完图糊了?2026国内免费实测,档案员都在用的组合方案

2026/7/28 16:04:35

说实话,提到PDF拆分再压缩,我真是被折腾得够呛。 上个月公司年度合同归档,一份300多页的PDF总合同,需要按年份拆分成三个独立文件,再分别压缩到10MB以内方便邮件发送各部门确认。我心想这还不简单?先找个海…

AI会议纪要怎么做?会议录音转文字加自动整理,三个月实测流程

AI会议纪要怎么做?会议录音转文字加自动整理,三个月实测流程

2026/7/29 0:08:23

打工人总是跑不掉要写会议纪要。 我在一家互联网公司,一周至少八场会:产品评审、数据复盘、项目同步、客户沟通,每场一小时起步。 以前的标准流程是开会拼命记→会后凭记忆补→整理成文档发群,结果经常记不全、记错、记串。 大概年…

重庆化龙桥老旧小区改造,怎么搞定夜景照明“不扰居”又能省成本?

重庆化龙桥老旧小区改造,怎么搞定夜景照明“不扰居”又能省成本?

2026/7/29 0:08:23

重庆化龙桥靠着嘉陵江,老小区多,最近几年城市更新做的勤,不少住户都反映过小区夜景亮了是好事,可有的灯太晃眼,半夜拉着窗帘都透光,睡不好觉。还有物业算账,这灯开一整晚,公摊电费蹭…

目标模糊、资源泛滥、进度失控,AI学习计划制定失败的3大隐形陷阱及救急方案

目标模糊、资源泛滥、进度失控,AI学习计划制定失败的3大隐形陷阱及救急方案

2026/7/29 0:08:23

更多请点击: https://codechina.net 第一章:目标模糊、资源泛滥、进度失控,AI学习计划制定失败的3大隐形陷阱及救急方案 目标模糊:学得越勤,离真实能力越远 当学习目标停留在“学会AI”或“搞懂大模型”这类宽泛表述…