CountDownLatch 使用方法
CountDownLatch 使用方法
import java.util.concurrent.CountDownLatch;
public class TestCountDownLatch {
public static void main(String[] args) {
testCountDownLatch();
}
public static void testCountDownLatch() {
int threadCount = 10;
final CountDownLatch latch = new CountDownLatch(threadCount);
for (int i = 0; i < threadCount; i++) {
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("线程" + Thread.currentThread().getId() + "开始出发");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("线程" + Thread.currentThread().getId() + "已到达终点");
latch.countDown();
}
}).start();
}
try {
latch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("10个线程已经执行完毕!开始计算排名");
}
}
参考答案
线程11开始出发
线程13开始出发
线程12开始出发
线程10开始出发
线程14开始出发
线程15开始出发
线程16开始出发
线程17开始出发
线程18开始出发
线程19开始出发
线程16已到达终点
线程10已到达终点
线程14已到达终点
线程15已到达终点
线程12已到达终点
线程17已到达终点
线程13已到达终点
线程11已到达终点
线程18已到达终点
线程19已到达终点
10个线程已经执行完毕!开始计算排名
“`
参考资料