【发布时间】:2019-03-07 11:32:39
【问题描述】:
如果多个线程调用 CountDownLatch 的 await() 方法会怎样?
例如,我们有 3 个线程 Thread1、Thread2、Thread3。 Thread1 有正在运行的作业。 Thread2,Thread3 会调用 await 方法。会有什么结果?
Thread2 会与 Thread3 同时恢复,还是 Thread3 会等待 Thread2 结束?
【问题讨论】:
-
Re,“……同时……”这些话意义不大。关于
countdownlatch.await(),你真正能说的就是它会减少countdownlatch的值,并且在值小于或等于零之前它不会返回。没有规范说明在值达到零后多久调用将返回。在处理器数量少于await()ing 线程数的系统上,所有线程在物理上不可能“同时”唤醒。
标签: java spring multithreading countdownlatch