zoukankan      html  css  js  c++  java
  • 线程:CountDownLatch同步工具

    一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。

    类似计数器,当计数器的值为0时,继续往下执行。

     1 package ch03;
     2 
     3 import java.util.Random;
     4 import java.util.concurrent.CountDownLatch;
     5 import java.util.concurrent.ExecutorService;
     6 import java.util.concurrent.Executors;
     7 
     8 public class CountDownLatchTest {
     9 
    10     public static void main(String[] args) {
    11         ExecutorService threadPool = Executors.newCachedThreadPool();
    12         //初始值设置为2
    13         final CountDownLatch latch = new CountDownLatch(2);
    14         for(int i=0; i<2; i++){
    15             Runnable runnable = new Runnable() {
    16                 
    17                 @Override
    18                 public void run() {
    19                     try {
    20                         Thread.sleep(new Random().nextInt(6000));
    21                         System.out.println("子线程执行。。。");
    22                         //计数器自减
    23                         latch.countDown();
    24                     } catch (Exception e) {
    25                         e.printStackTrace();
    26                     }
    27                 }
    28             };
    29             threadPool.execute(runnable);
    30         }
    31         
    32         try {
    33             //等待计数器自减到0,然后再往下执行。
    34             latch.await();
    35         } catch (InterruptedException e) {
    36             e.printStackTrace();
    37         }
    38         System.out.println("主线程....");
    39     }
    40 
    41 }
  • 相关阅读:
    lnmp之php5.6.29安装
    lnmp之mysql5.5.17安装
    利用xshell从windows上传文件到虚拟机
    linux命令
    tp中ueditor编辑器的使用
    Thinkphp 3.2.2 验证码check_verify方法,只能验证一次
    选学霸
    低价购买
    友好城市
    榨取kkksc03
  • 原文地址:https://www.cnblogs.com/myCodingSky/p/3703918.html
Copyright © 2011-2022 走看看