java多线程之CountdownLatch简单应用
来源:互联网 发布:用户画像 大数据知乎 编辑:程序博客网 时间:2024/06/10 18:22
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.await();System.out.println("线程" + Thread.currentThread().getName() + "已接受命令");Thread.sleep((long)(Math.random()*10000));System.out.println("线程" + Thread.currentThread().getName() + "回应命令处理结果");cdAnswer.countDown();} catch (Exception e) {e.printStackTrace();}}};service.execute(runnable);}try {Thread.sleep((long)(Math.random()*10000));System.out.println("线程" + Thread.currentThread().getName() + "即将发布命令");cdOrder.countDown();System.out.println("线程" + Thread.currentThread().getName() + "已发送命令,正在等待结果");cdAnswer.await();System.out.println("线程" + Thread.currentThread().getName() + "已收到所有响应结果");} catch (Exception e) {e.printStackTrace();}service.shutdown();}}
运行结果如下
-------------------------------------------------
线程pool-1-thread-1正准备接受命令
线程pool-1-thread-3正准备接受命令
线程pool-1-thread-2正准备接受命令
线程main即将发布命令
线程main已发送命令,正在等待结果
线程pool-1-thread-1已接受命令
线程pool-1-thread-3已接受命令
线程pool-1-thread-2已接受命令
线程pool-1-thread-3回应命令处理结果
线程pool-1-thread-1回应命令处理结果
线程pool-1-thread-2回应命令处理结果
线程main已收到所有响应结果
整理自教程
0 0
- java多线程之CountdownLatch简单应用
- (java)多线程之CountdownLatch的简单示例
- Java多线程之CountDownLatch
- Java多线程之CountDownLatch
- Java多线程之CountDownLatch
- JAVA多线程之CountDownLatch
- Java多线程之CountDownLatch
- Java多线程之CountDownLatch
- Java多线程之CountDownLatch
- Java多线程之----CountDownLatch
- Java多线程之CountDownLatch
- java多线程之CountDownLatch
- java多线程之CountDownLatch
- Java多线程之CountDownLatch学习
- java 多线程之CountDownLatch用法
- java 多线程编程之CountDownLatch
- JAVA多线程之(CountDownLatch)
- (十)java多线程之CountDownLatch
- StarUML使用说明-指导手册
- 深入理解计算机各种类型大小(sizeof)
- 基于jquery实现的类似百度搜索的输入框自动完成功能
- [c++]通过一个简单的程序引出#define与typedef的区别
- 散列表-开放地址法和链地址法的实现
- java多线程之CountdownLatch简单应用
- 【LeetCode】Remove Nth Node From End of List
- Jsp中EL表达式的使用
- Spring注入Bean的几种方式
- asp.net中使用Uploadify插件实现多张图片上传,上传后可显示缩略图、删除图片
- java中的应用和c++中的指针的区别
- 在secureCRT中创建Button按钮自动执行命令
- 计算机网络原理笔记
- 记录自己坚持不断挑战的学习历程!