zoukankan      html  css  js  c++  java
  • CountDownLatch使用方法

    CountDownLatch是一个同步辅助类,在完毕一组正在其它线程中运行的操作之前。它同意一个或多个线程一直等待。

    如果我们周末要去旅游。出游前须要提前订好机票、巴士和酒店,都订好后就能够出发了。这个用代码怎么实现?能够用CountDownLatch。

    主要方法

    • await(); // 使当前线程在锁存器倒计数至零之前一直等待
    • countDown(); // 递减锁存器的计数,如果计数到达零,则释放全部等待的线程

    栗子

    public static void main(String[] args) {
            ExecutorService executor=Executors.newFixedThreadPool(5);
            final CountDownLatch countDownLatch=new CountDownLatch(3);
    
            executor.execute(new Runnable(){
                public void run() {
                    try{
                    System.out.println("订机票");
                    }finally{
                        countDownLatch.countDown();
                    }
                }
            });
            executor.execute(new Runnable(){
                public void run() {
                    try{
                    System.out.println("订巴士");
                    }finally{
                        countDownLatch.countDown();
                    }
                }
            });
            executor.execute(new Runnable(){
                public void run() {
                    try{
                    System.out.println("订酒店");
                    }finally{
                        countDownLatch.countDown();
                    }
                }
            });
    
            try {
                countDownLatch.await();
                System.out.println("能够出发了");
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
  • 相关阅读:
    编程原理
    VMware
    window的composer安装
    微信小程序支付的坑
    php 生成二维码
    接口文档在线编辑
    mysql函数的使用
    linux的反斜扛的问题
    require_once中使用./和../时遇到的坑
    微信测试账号申请后,登陆空白的现象
  • 原文地址:https://www.cnblogs.com/yfceshi/p/7087169.html
Copyright © 2011-2022 走看看