首页 > 解决方案 > countDownLatch.await() 超时时记录

问题描述

我正在使用 Java 的 CountDownLatch 超时,在我的集成测试中如下所示:

countDownLatch.await( 5, TimeUnit.SECONDS)

有时,不进行 countDownLatch.countdown() 调用并且 countDownLatch.await(..) 超时。每当发生这种情况时,我都想记录下来,以帮助我调试失败的测试。有没有简单的方法来实现这一目标?

标签: java

解决方案


来自 CountDownLatch.await 上的文档:“如果经过指定的等待时间,则返回值 false。如果时间小于或等于零,则该方法根本不会等待。”

try (
  if (!countDownLatch.await( 5, TimeUnit.SECONDS)) {
    // Log that countDownLatch timed out
  }
} catch (InterruptedException ex) {
  // Log interrupted by another thread.
}

推荐阅读