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 那样需要显式关闭

相关推荐
2601_962189602 分钟前
【SpringBoot】使用IDEA创建SpringBoot项目
java·spring boot·intellij-idea
步行cgn3 分钟前
Spring Boot 启动报错:MissingServletWebServerFactoryBean 的排查与解决
java·spring boot·后端
XLYcmy3 分钟前
HTML/CSS/JS 基础与 Vue 技术栈深度解析
java·前端·css·html·vue3·vue2·api
~木雨14 分钟前
String 底层原理与常量池全解析:byte []+coder、intern 陷阱、substring 内存泄漏,一篇讲透
java·jvm·内存优化·string·字符串常量池
新知图书23 分钟前
12.3 智能体中Skill的约束与自进化实战
java·前端·数据库
en.en..31 分钟前
C语言 static函数与头文件封装规范
java·c语言·前端
海兰34 分钟前
【 Python 量化交易】开篇
开发语言·python·信息可视化·量化交易
步行cgn37 分钟前
Spring Boot 项目打包部署详解
java·spring boot·后端
pnoker1 小时前
拆解 IoT DC3:六层微服务架构
java·物联网·spring cloud·微服务·架构
cfm_29141 小时前
ThreadLocal 内存泄漏
java·jvm