hgnulb

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个线程已经执行完毕!开始计算排名 ```

参考资料

分类:

技术点:

相关文章: