美文网首页
CountDownLatch 使用

CountDownLatch 使用

作者: 在下喵星人 | 来源:发表于2018-04-29 11:26 被阅读17次

java.util.concurrent.CountDownLatch是一个并发结构,它允许一个或多个线程等待一组给定的操作完成。CountDownLatch用给定的计数进行初始化。该计数通过调用countDown()方法递减。等待此计数达到零的线程可以调用await()方法之一。调用await()会阻塞该线程,直到计数达到零。

下面是一个简单的例子。在Decrementer在CountDownLatch上调用countDown()3次之后,等待的Waiter将从await()调用中释放。

CountDownLatch latch = new CountDownLatch(3);

Waiter      waiter      = new Waiter(latch);
Decrementer decrementer = new Decrementer(latch);

new Thread(waiter)     .start();
new Thread(decrementer).start();
Thread.sleep(4000);
public class Waiter implements Runnable{

    CountDownLatch latch = null;

    public Waiter(CountDownLatch latch) {
        this.latch = latch;
    }

    public void run() {
        try {
            latch.await();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        System.out.println("Waiter Released");
    }
}
public class Decrementer implements Runnable {

    CountDownLatch latch = null;

    public Decrementer(CountDownLatch latch) {
        this.latch = latch;
    }

    public void run() {

        try {
            Thread.sleep(1000);
            this.latch.countDown();

            Thread.sleep(1000);
            this.latch.countDown();

            Thread.sleep(1000);
            this.latch.countDown();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

[原文](http://tutorials.jenkov.com/java-util-concurrent/countdownlatch.html

相关文章

  • 8. Java中的并发工具类

    CountDownLatch 作用:等待一个或多个线程执行完成; 使用: CountDownLatch cdl =...

  • JUC并发编程-6.CountDownLatch源码解析

    1.CountDownLatch相关API使用 运行结果 2.CountDownLatch相关API解读 new ...

  • countdown设计模式

    使用JDK自带的countdownLatch

  • CountDownLatch 使用

    java.util.concurrent.CountDownLatch是一个并发结构,它允许一个或多个线程等待一组...

  • CountDownLatch使用

    该类是一个同步功能的辅助类,使用效果是给定一个技术,当使用这个类的线程判断计数不为0时,则成wait状态,如果为0...

  • CountDownLatch使用

    CountDownLatch使用 CountDownLatch是java中的一个同步工具类.用于对线程的阻塞和唤醒...

  • CountDownLatch使用

    CountDownLatch是JAVA提供在java.util.concurrent包下的一个辅助类。 内部有一个...

  • CountDownLatch使用

    CountDownLatch结合多线程可以控制并发,异步先行,并发阻塞,充分利用多核cpu,同时处理多项事情,底层...

  • CountDownLatch使用

    之前开发遇到一个场景,需要开启多线程上传图片到阿里云,将所以图片上传完成后,将图片地址一起提交到后端。那么这里就需...

  • 并发工具类

    CountDownLatch 简介 CountDownLatch 允许一个或多个线程等待其他线程完成操作。 使用场...

网友评论

      本文标题:CountDownLatch 使用

      本文链接:https://www.haomeiwen.com/subject/qvyolftx.html