Java多线程并发JUC包CountDownLatch闭锁的实例

 更新时间:2025年05月16日 10:42:16   作者:二六八  
这篇文章主要介绍了Java多线程并发JUC包CountDownLatch闭锁的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Java多线程并发JUC包 CountDownLatch 闭锁

闭锁是一次性对象

一旦进入终止状态,就不能被重置。

public class CountDownLatchDemo {

    public static void main(String[] args) throws InterruptedException {
        int count = 5;
        CountDownLatch countDownLatch = new CountDownLatch(count);
        for (int i = 0; i < count; i++) {
            new Tangerine(String.valueOf(i),countDownLatch).start();
        }
        System.out.printf("main线程等待\n");
        countDownLatch.await();
        System.out.printf("main线程运行结束");
    }

    static class Tangerine extends Thread {
        final CountDownLatch countDownLatch;
        public Tangerine(String name,CountDownLatch countDownLatch) {
            super(name);
            this.countDownLatch = countDownLatch;
        }

        @Override
        public void run() {
            System.out.printf("线程%s在运行\n", this.getName());
            countDownLatch.countDown();
        }
    }
}
  • await() 等待,直到计数器中的值减为0。
  • await(long timeout, TimeUnit unit) 可以自己设置超时时间,一旦超过这个时间,await线程被唤醒,如果返回true,说明计数器为0,否则,不为0。
  • countDown() 使得计数器的值减1。
  • getCount() 得到当前计数器的值。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Maven版本冲突的三种解决方法

    Maven版本冲突的三种解决方法

    在Maven项目中,依赖传递可能导致Jar包版本冲突,常见的解决策略包括依赖排除、版本锁定和使用maven-shade-plugin插件,本文就来介绍一下这三种解决方法,感兴趣的可以了解一下
    2024-10-10
  • springboot2.6.4集成swagger3.0遇到的坑及解决方法

    springboot2.6.4集成swagger3.0遇到的坑及解决方法

    这篇文章主要介绍了springboot2.6.4如何集成swagger3.0,在集成的过程中遇到很多问题,本文给大家分享四种问题及相应的解决方案,需要的朋友可以参考下
    2022-03-03
  • java实现简单的客户信息管理系统

    java实现简单的客户信息管理系统

    这篇文章主要为大家详细介绍了java实现简单的客户信息管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • SpringBoot整合Shiro实现权限控制的代码实现

    SpringBoot整合Shiro实现权限控制的代码实现

    Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理,今天通过本文给大家介绍SpringBoot整合Shiro实现权限控制的方法,感兴趣的朋友一起看看吧
    2021-07-07
  • Java单例模式的线程安全,饿汉和懒汉模式详解

    Java单例模式的线程安全,饿汉和懒汉模式详解

    这篇文章主要为大家详细介绍了Java单例模式的线程安全,饿汉和懒汉模式。文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • 浅谈JVM之类的加载链接和初始化

    浅谈JVM之类的加载链接和初始化

    有了java class文件之后,为了让class文件转换成为JVM可以真正运行的结构,需要经历加载,链接和初始化的过程。这三个过程是怎么工作的呢?在本文中你将会找到答案。
    2021-06-06
  • Java实现一个小说采集程序的简单实例

    Java实现一个小说采集程序的简单实例

    下面小编就为大家带来一篇Java实现一个小说采集程序的简单实例。小编觉得挺不错的, 现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • SpringBoot实现对静态资源的访问权限控制的三种方案

    SpringBoot实现对静态资源的访问权限控制的三种方案

    在日常的 Spring Boot 开发中,我们通常会使用安全认证、授权手段来保护后端的 RESTful API,确保只有认证和授权的用户才能访问,所以本文就给大家介绍SpringBoot中如何实现对静态资源的访问权限控制,需要的朋友可以参考下
    2025-09-09
  • SpringBoot三步将Word转为PDF的实战指南

    SpringBoot三步将Word转为PDF的实战指南

    这篇文章主要为大家详细介绍了SpringBoot如何三步实现将Word转为PDF的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-12-12
  • Java Swing组件BoxLayout布局用法示例

    Java Swing组件BoxLayout布局用法示例

    这篇文章主要介绍了Java Swing组件BoxLayout布局用法,结合实例形式分析了Swing使用BoxLayout容器进行布局的相关方法与操作技巧,需要的朋友可以参考下
    2017-11-11

最新评论