博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
并发包java.util.concurrent.CountDownLatch
阅读量:6626 次
发布时间:2019-06-25

本文共 2006 字,大约阅读时间需要 6 分钟。

/** *  * @描述: 倒计时器 . * 犹如倒计时计数器,调用CountDownLatch对象的countDown方法就将计数器减1,当计算器为0的时候 * 则所有等待者或单个等待者开始执行 * @作者: Wnj . * @创建时间: 2017年5月15日 . * @版本: 1.0 . */public class CountdownLatchTest {        public static void main(String[] args) {        ExecutorService service = Executors.newCachedThreadPool();                //吹口哨        final CountDownLatch cdOrder = new CountDownLatch(1);                //等待结果        final CountDownLatch cdAnswer = new CountDownLatch(3);        for (int i = 0; i < 3; i++) {            Runnable runnable = new Runnable() {                public void run() {                    try {                        System.out.println("线程" + Thread.currentThread().getName() + "正准备接受命令");                        //cdOrder=1所有线程进入等待,上面的out会打印                        cdOrder.await();                        System.out.println("线程" + Thread.currentThread().getName() + "已接受命令");                        Thread.sleep((long)(Math.random() * 10000));                        System.out.println("线程" + Thread.currentThread().getName() + "回应命令处理结果");                        //cdAnswer=3                        cdAnswer.countDown();                    }                    catch (Exception e) {                        e.printStackTrace();                    }                }            };            service.execute(runnable);        }                //主线程        try {            Thread.sleep((long)(Math.random() * 10000));                        System.out.println("线程" + Thread.currentThread().getName() + "即将发布命令");            cdOrder=1 将cdOrder减1 = 0            cdOrder.countDown();            System.out.println("线程" + Thread.currentThread().getName() + "已发送命令,正在等待结果");            //cdAnswer= 3 cdAnser进入等待            cdAnswer.await();            System.out.println("线程" + Thread.currentThread().getName() + "已收到所有响应结果");        }        catch (Exception e) {            e.printStackTrace();        }        service.shutdown();            }}

 

转载于:https://www.cnblogs.com/superGG/p/6902419.html

你可能感兴趣的文章
自定义服务器控件(处理不同的浏览器)
查看>>
解决IE6-IE7下li上下间距
查看>>
聚集索引更新后会不会马上重新排序
查看>>
幸运大抽奖
查看>>
Post请求
查看>>
labview 中activex的初步使用方法
查看>>
JSP与JavaBeans
查看>>
解决Android中TextView首行缩进的问题
查看>>
oracle 查询哪些表分区
查看>>
Java排序算法(三):直接插入排序
查看>>
Python 列表 min() 方法
查看>>
C语言中 Float 数据结构的存储计算
查看>>
HSF源码阅读
查看>>
【死磕jeesite源码】Jeesite配置定时任务
查看>>
程序8
查看>>
TBluetoothLEDevice.UpdateOnReconnect
查看>>
QtTableView 简介
查看>>
Liferay 6开发学习(二十六):数据库连接相关问题
查看>>
【20170506】贝业新兄弟IT总监李济宏:第三方家居物流的IT架构探索
查看>>
poj3517
查看>>