前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CountLaunch Demo的测试

CountLaunch Demo的测试

作者头像
知识浅谈
发布于 2022-05-19 05:11:18
发布于 2022-05-19 05:11:18
23200
代码可运行
举报
文章被收录于专栏:分享学习分享学习
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Test { //CountLaunch demo  指定6个线程执行完后才能达到条件,继续向下进行
    // 处理文件的数量
    private static final int threadCount = 6;

    public static void main(String[] args) throws InterruptedException {
        // 创建一个具有固定线程数量的线程池对象(推荐使用构造方法创建)
        ExecutorService threadPool = Executors.newFixedThreadPool(10);
        final CountDownLatch countDownLatch = new CountDownLatch(threadCount);
        for (int i = 0; i < threadCount; i++) {
            final int threadnum = i;
            threadPool.execute(() -> {
                try {
                    //处理文件的业务操作
                    Thread.sleep(2);
                    //......
                } catch (InterruptedException e) {
                    e.printStackTrace();
                } finally {
                    //表示一个文件已经被完成
                    countDownLatch.countDown();
                }

            });
        }
        countDownLatch.await();
        threadPool.shutdown();
        System.out.println("finish");
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Semaphore - 信号量
synchronized 和 ReentrantLock 都是一次只允许一个线程访问某个资源,Semaphore 还可以指定多个线程同时访问某个资源。
happyJared
2019/07/22
3580
并发编程面试必备:AQS 原理以及 AQS 同步组件总结
AQS的全称为(AbstractQueuedSynchronizer),这个类在java.util.concurrent.locks包下面。
lyb-geek
2022/03/10
7170
并发编程面试必备:AQS 原理以及 AQS 同步组件总结
Java并发之CountDownLatch、Semaphore和CyclicBarrier
JAVA并发包中有三个类用于同步一批线程的行为,分别是CountDownLatch、Semaphore和CyclicBarrier。
用户1212940
2022/04/13
2670
Java并发之CountDownLatch、Semaphore和CyclicBarrier
Java并发工具类(JUC)
在J.U.C包中,提供了几个非常有用的并发工具类,CountDownLatch、CyclicBarrier和Semaphore工具类提供了一种并发流程控制的手段,Exchanger工具类则提供了在线程间交换数据的一种手段。
chenchenchen
2022/01/05
8790
理解Semaphore信号量
synchronized 和 ReentrantLock 都是一次只允许一个线程访问某个资源,Semaphore(信号量)可以指定多个线程同时访问某个资源。
黑洞代码
2021/04/08
3430
高并发之——浅谈AQS中的CountDownLatch、Semaphore与CyclicBarrier
作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。为使更多童鞋受益,现给出开源框架地址:
冰河
2020/10/29
3950
CyclicBarrier
CyclicBarrier(循环栅栏) 和 CountDownLatch 非常类似,它也可以实现线程间的技术等待,但是它的功能比 CountDownLatch 更加复杂和强大。主要应用场景和 CountDownLatch 类似。
黑洞代码
2021/04/08
2910
长文慎入-探索Java并发编程与高并发解决方案(更新中)1 基本概念2 CPU3 项目准备4线程安全性5发布对象7 AQS9 线程池10 死锁
所有示例代码,请见/下载于 https://github.com/Wasabi1234/concurrency 高并发处理的思路及手段 1 基本概念 1.1 并发 同时拥有两个或者多个线程,如果
JavaEdge
2018/05/16
9970
CountDownLatch讲解-Junit实现多线程测试
我们知道使用junit进行多线程测试时,主线程执行完毕后直接结束所有线程,(这就好比我前文说线程五种状态中的“STOP”,就是不接受新任务,中断当前正在运行的任务。)导致很多子线程没有执行完呢就已经关闭了,所以为了解决这个问题我们就需要讲解一个JUC又一个重要的类CountDownLatch,使用AQS状态表示计数,可以把它看成是一个计数器,源码注释第一句话:A synchronization aid that allows one or more threads to wait until,翻译过来就是:允许一个或多个线程等待。好,让我们揭开CountDownLatch的面纱,并用它解决junit多线程问题。
胖虎
2019/06/26
1.5K0
CountDownLatch讲解-Junit实现多线程测试
一个关于同步接口并发控制的简单demo
方案:线程池(实现并发)+CountDownLatch(实现阻塞主线程,并发结束返回结果)+Semaphore (实现并发控制)
名字是乱打的
2022/10/28
2780
CyclicBarrier和CountDownLatch的用法与区别
CyclicBarrier和CountDownLatch这两个工具都是在java.util.concurrent包下,并且平时很多场景都会使用到。
Java识堂
2021/09/06
1.6K0
《Java面试题集中营》- Java并发
Jdk提供了stop()方法用于强制停止线程,但官方并不建议使用,因为强制停止线程会导致线程使用的资源,比如文件描述符、网络连接处于不正常的状态。建议使用标志位的方式来终止线程,如果线程中有使用无限期的阻塞方式,比如wait()没有设置超时时间,就只能使用interrupt()方法来终止线程
阿提说说
2024/07/14
1120
CyclicBarrier - 循环栅栏
CyclicBarrier 和 CountDownLatch 非常类似,它也可以实现线程间的技术等待,但是它的功能比 CountDownLatch 更加复杂和强大,主要应用场景和 CountDownLatch 类似。
happyJared
2019/07/23
5280
CyclicBarrier - 循环栅栏
ConcurrentLinkedQueue vs BlockingQueue比较
结果 /// /// /// ///=============/// blocking version cost ms:22052 lock free cost ms:22
用户3579639
2019/10/22
5020
ThreadLocal探索使用
场景:利用SimpleDateFormat格式化时间,因为SimpleDateFormat线程不安全,每次都new一个优点浪费,想着每个线程内部维持1个SimpleDateFormat,然而自定义Pet是可以做到的,SimpleDateFormat做不到,好奇怪啊
九转成圣
2024/04/10
910
如何编写一套多线程的测试用例?
很多时候,新开发的功能在上线之前,我们都会进行压力测试,以防上线之后,突然出现性能瓶颈或者出现线程安全问题。
Java极客技术
2022/12/04
1.1K0
倒计时器CountDownLatch
CountDownLatch 允许 count 个线程阻塞在一个地方,直至所有线程的任务都执行完毕。
黑洞代码
2021/04/08
1.9K0
万字总结!全网最全的Java并发编程知识点
同时拥有两个或者多个线程,如果程序在单核处理器上运行多个线程将交替地换入或者换出内存,这些线程是同时“存在"的,每个线程都处于执行过程中的某个状态,如果运行在多核处理器上,此时,程序中的每个线程都将分配到一个处理器核上,因此可以同时运行.
JavaEdge
2021/12/07
1.6K0
万字总结!全网最全的Java并发编程知识点
CountDownLatch和Semaphore使用场景
CountDownLatch CountDownLatch位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等到其它3任务完成才能执行,此时就可以用CountDownLatch来实现。 [img] 假设计数器的值为2,线程A调用await()方法之后,A线程就进入了等待状态,之后其它线程中执行countDown(),计数器就会-1,该操作线程继续执行,当计数器从2编程0,线程A继续执行。 package com.keytech.task; import
开源日记
2021/01/07
1.8K0
探索ThreadLocal的使用与SimpleDateFormat的多线程问题
在Java的多线程编程中,我们常常会遇到某些类在多线程环境下不安全的问题,例如SimpleDateFormat。由于SimpleDateFormat不是线程安全的,直接在多线程中共享一个实例会导致各种奇怪的问题。因此,我们需要寻找一种有效的方法来使每个线程拥有一个独立的SimpleDateFormat实例。本文将深入探讨如何利用ThreadLocal实现这个目标,并分析其中的一些陷阱和解决方案。
九转成圣
2024/06/05
2010
相关推荐
Semaphore - 信号量
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验