CountDownLatch可以使某个线程等待其他线程执行完成之后才执行代码逻辑
package com.mock;
import org.junit.jupiter.api.Test;
import java.time.Duration;
import java.time.Instant;
import java.util.concurrent.CountDownLatch;
public class TestCountDownLatch {
@Test
public void test() throws InterruptedException {
CountDownLatch c = new CountDownLatch(6);
Instant start = Instant.now();
for (int i = 0; i < 6; i++) {
new Thread(() -> {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}finally {
c.countDown();
}
}).start();
}
c.await();
Instant end = Instant.now();
System.out.println(Duration.between(start, end).toMillis());
}
}
main线程等待其他线程执行完成之后才执行打印操作
本文通过一个实例详细介绍了CountDownLatch在Java并发编程中的应用。CountDownLatch允许一个或多个线程等待其他线程完成操作。示例代码展示了如何使用CountDownLatch使主线程等待六个子线程执行完毕,最终打印出所有线程执行的总时间。
690

被折叠的 条评论
为什么被折叠?



