美文网首页
java 多线程CountDownLatch

java 多线程CountDownLatch

作者: 霍霍9527 | 来源:发表于2019-02-28 16:15 被阅读0次

CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完后再执行

CountDownLatch是在java1.5被引入的,跟它一起被引入的并发工具类还有CyclicBarrier、Semaphore、ConcurrentHashMapBlockingQueue,它们都存在于java.util.concurrent包下。CountDownLatch这个类能够使一个线程等待其他线程完成各自的工作后再执行。例如,应用程序的主线程希望在负责启动框架服务的线程已经启动所有的框架服务之后再执行。

ExecutorService executorService = Executors.newFixedThreadPool(5);
        Log.e("huo >>>", "AppApplication = run  start");
        final CountDownLatch parserCtl = new CountDownLatch(5);
        for (int i = 0; i < 5; i++) {
            final int finalI = i;
            executorService.execute(new Runnable() {
                @Override
                public void run() {
                    Log.e("huo >>>", "AppApplication = run  " + finalI);
                    try {
                        Thread.sleep(2000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    parserCtl.countDown();
                }
            });
        }
        try {
            parserCtl.await();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        Log.e("huo >>>", "AppApplication = complete" );

这里记录方便日后复习

具体应用请参考大牛总结:https://www.cnblogs.com/lixuwu/p/6045378.html

相关文章

网友评论

      本文标题:java 多线程CountDownLatch

      本文链接:https://www.haomeiwen.com/subject/viqkuqtx.html