Groovy里使用CountDownLatch

简介: Groovy里使用CountDownLatch

Latch的字面意思:弹簧锁image.pngCountDownLatch是java.util.concurrent包里的一个同步工具类。


CountDownLatch的构造函数,接收一个类型为整型的参数,代表CountDownLatch所在的线程,在执行await方法后能够返回,所需要在其他线程内调用其countDown方法的次数。


image.pngimage.pngtimer.schedule新启动了一个线程,在新线程里调用countDown,而主线程执行await进入阻塞状态,待新线程调用一次countDown之后,主线程立即从await方法的阻塞状态中返回。

package jerry;
import java.util.concurrent.CountDownLatch
import java.util.concurrent.TimeUnit
CountDownLatch called = new CountDownLatch(1)
println "main thread id: " + Thread.currentThread().getId();
Timer timer = new Timer()
timer.schedule(new TimerTask() {
  void run() {
    println "call countDown in another thread: " + Thread.currentThread().getId();
    called.countDown()
  }
}, 220)
println "before calling called.await in main thread: " + Thread.currentThread().getId();
called.await(10, TimeUnit.SECONDS)
println "after calling called.await in main thread: " + Thread.currentThread().getId();


相关文章
|
2月前
|
Java
|
3月前
|
Java 测试技术 开发者
Java面试题:解释CountDownLatch, CyclicBarrier和Semaphore在并发编程中的使用
Java面试题:解释CountDownLatch, CyclicBarrier和Semaphore在并发编程中的使用
55 11
|
4月前
|
存储 并行计算 Java
Java8中JUC包同步工具类深度解析(Semaphore,CountDownLatch,CyclicBarrier,Phaser)
Java8中JUC包同步工具类深度解析(Semaphore,CountDownLatch,CyclicBarrier,Phaser)
40 2
|
4月前
|
Java
Java 中 CountDownLatch 和 CyclicBarrier 有什么不同?
Java 中 CountDownLatch 和 CyclicBarrier 有什么不同?v
40 0
|
5月前
|
Java
CountDownLatch用法、详解
CountDownLatch用法、详解
|
5月前
|
Java API
JAVA同步锁CountDownLatch
JAVA同步锁CountDownLatch
|
人工智能 移动开发 Java
【Java基础】线程同步类 CountDownLatch
CountDownLatch是JDK提供的一个同步工具,它可以让一个或多个线程等待,一直等到其他线程中执行完成一组操作。 CountDownLatch 基于AQS构建同步器: AQS - AbstractQueuedSynchronizer ,即抽象的队列同步器,是一种用来**构建锁和同步器**的框架。
Java CyclicBarrier和CountDownLatch的区别
Java CyclicBarrier和CountDownLatch的区别
|
Java
一文带你理解java中的同步工具类CountDownLatch
这篇文章主要讲解java中一个比较常用的同步工具类CountDownLatch,不管是在工作还是面试中都比较常见。我们将通过案例来进行讲解分析。
138 0
一文带你理解java中的同步工具类CountDownLatch