CountDownLatch使用
来源:互联网 发布:linux使用教程.pdf 编辑:程序博客网 时间:2024/06/05 06:04
闲话少说,直接上demo
package com.ilucky.test.jdk.util.concurrent;import java.util.Date;import java.util.concurrent.CountDownLatch;/** * 一个线程(或者多个线程),等待另外n个线程完成某个事情之后执行. * CountDownLatch是计数器, 线程完成一个就记一个, 就像报数一样, 只不过是递减的. * * CountDownLatch和CylicBarrier的区别: http://blog.csdn.net/kjfcpua/article/details/7300286 * @author IluckySi * */public class CountDownLatchTest { public static void main(String[] args) { CountDownLatch cdl = new CountDownLatch(3); new Test1T1(cdl).start(); new Test1T2(cdl).start(); new Test1T3(cdl).start(); try { cdl.await(); // 继续执行下面的逻辑...(略) } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("Success..."); }}class Test1T1 extends Thread { private CountDownLatch cdl; Test1T1(CountDownLatch cdl) { this.cdl = cdl; } public void run() { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(new Date() + "name =" + Thread.currentThread().getName()); cdl.countDown(); }}class Test1T2 extends Thread { private CountDownLatch cdl; Test1T2(CountDownLatch cdl) { this.cdl = cdl; } public void run() { try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(new Date() + "name =" + Thread.currentThread().getName()); cdl.countDown(); }}class Test1T3 extends Thread { private CountDownLatch cdl; Test1T3(CountDownLatch cdl) { this.cdl = cdl; } public void run() { try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(new Date() + "name =" + Thread.currentThread().getName()); cdl.countDown(); }}/**Thu May 11 10:45:12 GMT+08:00 2017name =Thread-0Thu May 11 10:45:13 GMT+08:00 2017name =Thread-1Thu May 11 10:45:16 GMT+08:00 2017name =Thread-2Success...*/
观察运行结果!
0 0
- CountDownLatch使用
- CountDownLatch使用
- CountDownLatch使用
- CountDownLatch使用
- CountDownLatch使用
- CountDownLatch使用
- CountDownLatch使用
- CountDownLatch使用
- CountDownLatch使用
- CountDownLatch使用
- CountDownLatch 的使用
- Java之CountDownLatch使用
- 【原】CountDownLatch使用
- java CountDownLatch使用
- CountDownLatch的使用
- CountDownLatch 使用例子
- 15-CountDownLatch使用
- 什么时候使用CountDownLatch
- 数据结构之栈复杂数据应用实现(2)
- oracel存储过程 创建错误:ORA-06550: line 2, column 2:PLS-00905
- 截取打印机的数据
- 二分查找,数组去重Java
- 在CentOS上搭建PHP服务器环境
- CountDownLatch使用
- Hadoop初探(一)
- SpringBoot项目在eclipse启动成功,在idea中失败
- ZCMU 1143: 又是比智力
- 无题
- spring boot 支持jar包运行jsp
- 开发人员的必备技能
- Java基础-day01-基础题
- 解决绕过android下apk使用usb设备权限查询相应问题,自动获取usb权限