主线程:
public
class
MainThread {
public
static
void
main(String[] args)
throws
InterruptedException {
long
startTime = System.currentTimeMillis();
int
threadNum =
5
;
CountDownLatch runningThreadNum =
new
CountDownLatch(threadNum);
System.out.println(Thread.currentThread().getName()+
"-start"
);
for
(
int
i =
0
; i < threadNum; i++) {
new
SubThread(runningThreadNum).start();
}
runningThreadNum.await();
System.out.println(Thread.currentThread().getName()+
"-end"
);
long
endTime = System.currentTimeMillis();
System.out.println(
"runningTime:"
+(endTime-startTime));
}
public
class
SubThread
extends
Thread{
private
CountDownLatch runningThreadNum;
public
SubThread(CountDownLatch runningThreadNum){
this
.runningThreadNum = runningThreadNum;
}
@Override
public
void
run() {
System.out.println(Thread.currentThread().getName()+
"-start"
);
System.out.println(Thread.currentThread().getName()+
"-do something"
);
System.out.println(Thread.currentThread().getName()+
"-end"
);
runningThreadNum.countDown();
}
}
分享到:
相关推荐
主要为大家详细介绍了使用CountDownLatch等待多线程全部执行完成,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
mybaits 多线程 实现数据批量插入 (运用CountDownLatch实现闭锁) 1、mybatis批处理 2、数据分批量查询 3、数据分批量插入
简介countDownLatch这个类使一个主线程等待其他线程执行完毕后再执行。它是通过一个计数器来实现的,计数器的初始值是线程的数量。每当一个线程执行完毕后,
CountDownLatch使用实例 - 初始化时,设置计数(count)值,也就是闭锁需要等待的线程数。 - 主线程必须在启动其他...当所有 N 个线程都调用了这个方法时,计数将达到 0,主线程可以在 await() 方法之后继续执行。
利用 CountDownLatch 类实现线程同步,而不用回调机制。详见我的博文 http://blog.csdn.net/kroclin/article/details/37956949
主要介绍了Java线程并发工具类CountDownLatch原理及用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主线程等待多个线程完成 4.1 场景介绍 4.2 使用CountDownLatch实现等待 CountDownLatch的其他应用场景 5.1 倒计时计时器 5.2 同时开始任务 5.3 等待多个资源就绪 CountDownLatch与CyclicBarrier的对比 最佳实践与...
具体来说一个经典得应用案例是,主线程等待子线程执行完毕,再进行信息汇总,退出主函数。 如下代码所示。我们可以大胆猜测其初始化构造,赋值计数器值,之后,每次调用countDown函数,计数器减一,当为零时,会唤醒...
然后,创建一个固定数量的线程池,使用 CountDownLatch 控制主线程等待所有任务完成;最后,循环迭代分片区间,将分片任务提交到线程池中处理。在每个任务中,使用 ReadRowHolder 对象实现分片读取 Excel 数据,并...
NULL 博文链接:https://cpjsjxy.iteye.com/blog/2272451
它的作用类似于CountDownLatch,可以让一个或多个线程等待其他线程执行完毕后再继续执行。 CyclicBarrier可以被看作是一个屏障,当所有线程都到达这个屏障时,所有线程才能继续执行。与CountDownLatch不同的是,...
在Java中和ReadWriteLock.ReadLock一样,CountDownLatch的本质也是一个"共享锁",这里我们就来详解Java多线程编程中CountDownLatch阻塞线程的方法:
【2018最新最详细】并发多线程教程,课程结构如下 ...25.大白话说java并发工具类-CountDownLatch,CyclicBarrier 26.大白话说java并发工具类-Semaphore,Exchanger 27.一篇文章,让你彻底弄懂生产者--消费者问题
1)CountDownLatch(同步倒数计数器:等待多线程(或者多步骤)完成) 2)CyclicBarrier(循环屏障:同步屏障) 3)Semaphore(信号量:控制并发进程数) 主要参考资料:java并发编程的艺术、Java并发——...
主要介绍了Java中CountDownLatch进行多线程同步详解及实例代码的相关资料,需要的朋友可以参考下
CountDownLatch计数器闭锁是一个能阻塞主线程,让其他线程满足特定条件下主线程再继续执行的线程同步工具。 Latch闭锁的意思,是一种同步的工具类。类似于一扇门:在闭锁到达结束状态之前,这扇门一直是关闭着的,不...
主要介绍了Java多线程编程之CountDownLatch同步工具使用实例,需要的朋友可以参考下
主要介绍了JAVA多线程CountDownLatch的使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
主要介绍了如何使用CountDownLatch同步java多线程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下