【问题标题】:Why does main thread start execution when its method calls latch.await()为什么主线程在其方法调用latch.await()时开始执行
【发布时间】:2020-07-08 18:19:36
【问题描述】:

我有一个调用断言的主线程。在断言内部,有另一个方法被调用,该方法使用了 latch.await() 。现在主线程不等待断言完成并在程序中前进。这是预期的行为吗?这是否意味着如果父方法调用的方法正在使用latch.await,它可以继续执行?

【问题讨论】:

  • 你能贴一些代码让我重现这个东西吗?
  • 你的主线程必须在启动其他线程后立即调用 CountDownLatch.await() 方法。执行将在 await() 方法上停止,直到其他线程完成执行。
  • 请贴一些代码。而且,在运行 Java 时是否启用了断言?通常你需要-ea 标志
  • 是阿米特,我期待的错误显然不是由闩锁引起的,它确实同步运行。谢谢。

标签: java multithreading asynchronous countdownlatch


【解决方案1】:

执行确实在主线程上停止,直到闩锁计数降至零。然后程序的其余部分才开始同步执行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 2013-10-13
    • 1970-01-01
    相关资源
    最近更新 更多