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();
            }
        }
  • 相关阅读:
    poj 1584
    poj 1113 & poj 2187
    pku 1321 棋盘问题
    poj 1408
    pku 2251 Dungeon Master
    sdut oj 2218 Give Me an E
    Android工程 单元测试
    Android Timer编写方式
    去除工程的.svn隐藏文件夹
    Android 绑定远程服务出现 Not Allowed to bind service
  • 原文地址:https://www.cnblogs.com/yfceshi/p/7087169.html
Copyright © 2011-2022 走看看