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线程等待其他线程执行完成之后才执行打印操作