Latch的字面意思:彈簧鎖
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yM0YGO0kjNhNTM0EzN5MTY3MDZ0gzMiNTZ0MjN3YzY08CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.png)
CountDownLatch是java.util.concurrent包裡的一個同步工具類。
CountDownLatch的構造函數,接收一個類型為整型的參數,代表CountDownLatch所在的線程,在執行await方法後能夠傳回,所需要在其他線程内調用其countDown方法的次數。
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();