闭锁 CountDownLatch 的使用

类 java.util.concurrent.CountDownLatch 是一种同步辅助,允许一个或多个线程等待,直到在其他线程中执行的一组操作完成。
主要API:
1.CountDownLatch(int count)
构造一个使用给定count初始化的CountDownLatch。
2.countDown()
递减锁存器的计数,如果计数为零,则释放所有等待的线程。
3.await()
导致当前线程等待,直到锁存器计数为零,除非线程被中断。
()
4.boolean await(long timeout, TimeUnit unit)
导致当前线程等待,直到锁存器计数为零,除非线程被中断,或者指定的等待时间已经过了。
返回值:如果计数为零,则为true;如果在计数为零之前等待的时间已经过了,则为false

例子:

import java.util.concurrent.TimeUnit;

/**
 * @Auther: tzg
 * @Date: 2019/7/8 09:59
 * @Description:
 */
public class Test {

    private static CountDownLatch latcher = new CountDownLatch(1);

    public static void main(String[] args) throws InterruptedException {
        Thread t = new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    Thread.sleep(5000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                latcher.countDown();
                System.out.println("count down");
            }
        });
        t.start();
        latcher.await();
//        latcher.await(1, TimeUnit.SECONDS);
        System.out.println("over");
    }
}

你可能感兴趣的:(闭锁 CountDownLatch 的使用)