博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多个线程运行结束之后主线程再执行CountDownLatch
阅读量:6180 次
发布时间:2019-06-21

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

多个线程运行结束之后主线程再执行CountDownLatch

学习了:http://blog.csdn.net/lvyuanj/article/details/50737123  这个要膜拜一下!

http://blog.csdn.net/lynnlovemin/article/details/75604209

膜拜一下:  原文引用:

import java.util.concurrent.CountDownLatch;    /**  * @filename      : MyThread.java  * @description   : 描述(中文)  * @author        : lvyuanjun  * @create        : 2016年2月24日 下午2:04:30   *  * Modification History:修改日志  * Date                 Author       Version               description  * -------------------------------------------------------------------------------  * 2016年2月24日 下午2:04:30      lvyuanjun  */  public class MyThread {            public static void main(String[] args) throws InterruptedException {                    CountDownLatch countDownLatch = new CountDownLatch(3); //子线程计算器                    System.out.println("start...");                    FirstThread f = new FirstThread(countDownLatch);          Thread thread = new Thread(f);          thread.start();                    SecondThread s = new SecondThread(countDownLatch);          Thread thread1 = new Thread(s);          thread1.start();                    ThreeThread t = new ThreeThread(countDownLatch);          Thread thread2 = new Thread(t);          thread2.start();                    countDownLatch.await(); //等待子线程计算器为零时,则所有的子线程都已经运行完成                    System.out.println("end...");      }  }          class FirstThread implements Runnable {            private CountDownLatch countDownLatch;            public FirstThread(CountDownLatch countDownLatch){          this.countDownLatch = countDownLatch;      }            public void run() {          System.out.println("FirstThread start....");          try {              Thread.sleep(1000*5);          } catch (InterruptedException e) {              e.printStackTrace();          }finally{              System.out.println("FirstThread start1....");              countDownLatch.countDown(); //子线程执行完之后,子线程计算器减一,直至到零          }                }  }  class SecondThread implements Runnable{            private CountDownLatch countDownLatch;;            public SecondThread(CountDownLatch countDownLatch){          this.countDownLatch = countDownLatch;      }            @Override      public void run() {          System.out.println("SecondThread start....");          try {              Thread.sleep(1000*9);          } catch (InterruptedException e) {              e.printStackTrace();          }finally{              System.out.println("SecondThread start1....");              countDownLatch.countDown(); //子线程执行完之后,子线程计算器减一,直至到零          }      }  }  class ThreeThread implements Runnable{            private CountDownLatch countDownLatch;;            public ThreeThread(CountDownLatch countDownLatch){          this.countDownLatch = countDownLatch;      }      @Override      public void run() {          System.out.println("ThreeThread start....");          try {              Thread.sleep(1000*3);          } catch (InterruptedException e) {              e.printStackTrace();          }finally{              System.out.println("ThreeThread start1....");              countDownLatch.countDown();  //子线程执行完之后,子线程计算器减一,直至到零         }      }  }

 

你可能感兴趣的文章
Yourphp 使用说明
查看>>
卷积神经网络——本质上是在利用卷积做特征压缩,然后再全连接
查看>>
洛谷P1516 青蛙的约会
查看>>
再读《Parallel Programming with Python》并作笔记
查看>>
orchard-1.9.2-1.10.2汉化
查看>>
.NET快速信息化系统开发框架 V3.2 -> WinForm“组织机构管理”界面组织机构权限管理采用新的界面,操作权限按模块进行展示...
查看>>
RxJava使用介绍
查看>>
Kafka的CommitFailedException异常
查看>>
思考与阅读
查看>>
ES6
查看>>
Wireshark中的一些SNMP相关的过滤器
查看>>
java8 新特性
查看>>
Xilinx Vivado的使用详细介绍(1):创建工程、编写代码、行为仿真、Testbench
查看>>
在 Scale Up 中使用 Health Check - 每天5分钟玩转 Docker 容器技术(145)
查看>>
基于 HTML5 Canvas 实现的文字动画特效
查看>>
jsp c标签不遍历的方法
查看>>
Linux命令:pigz多线程压缩工具【转】
查看>>
Python学习笔记——与爬虫相关的网络知识
查看>>
git 录制简单实用好工具 LICEcap
查看>>
multiple definition of qt_plugin_query_metadata
查看>>