同步器1-CountDownLatch倒计时计数器

版权声明:fromZjy QQ1045152332 https://blog.csdn.net/qq_36762677/article/details/86550724

描述

  1. 有一个任务需要等待其他几个人物执行完毕后才能执行
import java.util.concurrent.CountDownLatch;

public class CountDownLatchDemo {
    public static void main(String[] args){
        final int num = 2;
        //两个任务后
        CountDownLatch countDownLatch = new CountDownLatch(num);

        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    Thread.sleep(1000);
                    System.out.println("任务1执行完毕");
                    countDownLatch.countDown();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }).start();

        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    Thread.sleep(2000);
                    System.out.println("任务2执行完毕");
                    countDownLatch.countDown();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }).start();

        System.out.println("主线程正在等待其他"+num+"个线程执行完成");
        try {
            //同步点
            countDownLatch.await();
            System.out.println("主线程开始执行");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    }
}

结果

主线程正在等待其他2个线程执行完成
任务1执行完毕
任务2执行完毕
主线程开始执行

猜你喜欢

转载自blog.csdn.net/qq_36762677/article/details/86550724
今日推荐