Java 开发 - CountDownLatch 不需要手动关闭

CountDownLatch 不需要手动关闭

  1. CountDownLatch 使用完毕后会占用一定的内存资源,但不需要手动释放,Java 的垃圾回收(GC)会自动回收

  2. CountDownLatch 是一个普通的 Java 对象,内部维护了一个继承自 AbstractQueuedSynchronizer(AQS)的同步器,只要该对象可达(即还有引用指向它),它就会占用堆内存

java 复制代码
public class CountDownLatch {
    private static final class Sync extends AbstractQueuedSynchronizer {}
}
  1. 当没有任何强引用指向 CountDownLatch 实例时,GC 会在合适的时机回收它,释放其占用的内存

  2. 仍有线程在 await() 上等待(例如,忘记调用 countDown() 足够多次),这些线程会一直阻塞,并且 CountDownLatch 对象会一直被这些等待线程间接引用,导致无法被回收。因此,务必确保所有 countDown() 都被调用,或者处理超时 / 中断逻辑

  3. CountDownLatch 不涉及文件句柄、网络连接、数据库连接等有限系统资源,所以不会像 InputStream 或 Socket 那样需要显式关闭

相关推荐
Geek-Chow15 分钟前
CountDownLatch in Java
java
SL_staff1 小时前
从RBAC到场景化授权:《无忧·企业文档》三级权限模型的技术实践解析
java·开源·产品
传奇开心果编程1 小时前
【springboot基础语法学与练】第 1 课:从零开始
java·spring boot·后端·学习
SL_staff2 小时前
财务系统慎用低代码?从数据模型闭环看合规落地的技术实践
java·低代码·全栈
Bruce_Liuxiaowei2 小时前
Python 实例赋值遮蔽类属性:一个从不报错的静默陷阱
开发语言·python·语法糖
滕州市燕猫虎计算机科技工作室个体工商户2 小时前
IDEA:Command line is too long
java·ide·intellij-idea
BoomHe2 小时前
Android Framework 文件应用移植到 AndroidStudio
android
步行cgn2 小时前
Spring p 命名空间注入详解
java·前端·spring
YatHinLay2 小时前
MyBatis 流式查询实战:ResultHandler 处理海量数据
java
天天被压力3 小时前
【跨市场数据实战 #08】可转债折价机会怎么筛:3个接口抓比价、列表和实时盘口
java·人工智能·python