CountDownLatch简介
来源:互联网 发布:win10美化mac os 编辑:程序博客网 时间:2024/05/17 20:27
1 CountDownLatch函数列表
CountDownLatch(int count)构造一个用给定计数初始化的 CountDownLatch。
// 使当前线程在锁存器倒计数至零之前一直等待,除非线程被中断。
void await()
// 使当前线程在锁存器倒计数至零之前一直等待,除非线程被中断或超出了指定的等待时间。
boolean await(long timeout, TimeUnit unit)
// 递减锁存器的计数,如果计数到达零,则释放所有等待的线程。
void countDown()
// 返回当前计数。
long getCount()
// 返回标识此锁存器及其状态的字符串。
String toString()
2 使用示例
下面通过CountDownLatch实现:"主线程"等待"5个子线程"全部都完成"指定的工作(休眠1000ms)"之后,再继续运行。
代码如下:
import java.util.concurrent.CountDownLatch;import java.util.concurrent.CyclicBarrier;
public class CountDownLatchTest1 {
private static int LATCH_SIZE = 5;
private static CountDownLatch doneSignal;
public static void main(String[] args) {
try {
doneSignal = new CountDownLatch(LATCH_SIZE);
// 新建5个任务
for(int i=0; i<LATCH_SIZE; i++)
new InnerThread().start();
System.out.println("main await begin.");
// "主线程"等待线程池中5个任务的完成
doneSignal.await();
System.out.println("main await finished.");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
static class InnerThread extends Thread{
public void run() {
try {
Thread.sleep(1000);
System.out.println(Thread.currentThread().getName() + " sleep 1000ms.");
// 将CountDownLatch的数值减1
doneSignal.countDown();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
0 0
- CountDownLatch简介
- CountDownLatch 简介和例子
- CountDownLatch 简介和例子
- CountDownLatch 之简介.
- 1.CountDownLatch简介
- Java并发编程之闭锁CountDownLatch简介
- CountDownLatch
- CountDownLatch
- CountDownLatch
- Countdownlatch
- CountDownLatch
- CountDownLatch
- CountDownLatch
- CountDownLatch
- CountDownLatch
- CountDownLatch
- CountDownLatch
- CountDownLatch
- 关于回车直接执行事件的方法
- 无领导小组讨论案例及其分析1
- 和大家分享一个老外的代码适用unity5.2.3以上
- 在activity,fragment中获得actionbar的高度
- hdu 2955 Robberies 01背包 ★★☆
- CountDownLatch简介
- Masonry简单使用
- Oracle函数创建语法格式
- Swift UIview的 层次交换 和部分动画的详解
- iOS 如何通过 找到QQ 微信 支付宝等常用App的 URl schemes
- javascript 打开页面window.location和window.open的区别
- javascript获取鼠标点击位置的兼容写法
- E: Unable to locate package...
- 芒果iOS开发之UITableView详解