zoukankan      html  css  js  c++  java
  • 保证一个线程最后执行使用CountDownLatch

    package cn.jiedada.controller;
    
    import java.util.*;
    import java.util.concurrent.CountDownLatch;
    import java.util.concurrent.TimeUnit;
    
    public class MyTest {
    
        public static void main(String[] args) {
    
            CountDownLatch  latch = new CountDownLatch(2);
    
            new Thread(() -> {
                System.out.println("线程C开启,等待线程A、B执行完成才继续执行");
                try {
                    latch.await();
                } catch (Exception e) {
                    e.printStackTrace();
                }
                System.out.println("线程C执行完成");
    
            }).start();
    
            new Thread(() -> {
                System.out.println("线程A开始执行");
                try {
                    TimeUnit.SECONDS.sleep(new Random().nextInt(10));
                    latch.countDown();
                } catch (Exception e) {
                    e.printStackTrace();
                }
                System.out.println("线程A执行完成");
            }).start();
    
            new Thread(() -> {
                System.out.println("线程B开始执行");
                try {
                    TimeUnit.SECONDS.sleep(new Random().nextInt(10));
                    latch.countDown();
                } catch (Exception e) {
                    e.printStackTrace();
                }
                System.out.println("线程B执行完成");
    
            }).start();
    
    
    
        }
    
    
    }
  • 相关阅读:
    关键字static
    关键字const有什么含义?
    关于目标
    B/B+树的初步理解(一)
    优先队列(priority_queue)
    哨兵的作用
    数学笑话集(一)

    排序算法小结(一)
    KMP算法
  • 原文地址:https://www.cnblogs.com/xiaoruirui/p/15009601.html
Copyright © 2011-2022 走看看