多线程中---如何编写所有线程运行完毕-则继续向下运行呢?

欣喜 Java经验 发布时间:2024-11-20 15:39:47 阅读数:14188 1
下文笔者讲述多线程中编写一个“多任务都完成后”,程序继续向下运行的效果
实现思路:
    我们只需定义一个CountDownLatch实例
	每一个线程运行完毕后,则CountDownLatch实例减1
	
	使用 countDownLatch.await() 阻塞当前程序,
	    直到countDownLatch实例计数为0,
		 程序继续向下运行 
例:等所有线程运行完毕后,程序继续向下运行
package com.jd;


import java.util.Random;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 * java265.com CountDownLatch测试
 *   CountDownLatch 示例
 *
 * */
public class CountDownLatchTest {

    public static void main(String[] args) throws InterruptedException {
        //定义一个计数器
        CountDownLatch countDownLatch = new CountDownLatch(5);

        ExecutorService executorService = Executors.newFixedThreadPool(5);
        for (int i = 0; i < 5; i++) {
            final int no = i+1;
            executorService.submit(() ->{
                try {
                    Thread.sleep(new Random().nextInt(10000));
                    System.out.println("NO." + no + " 线程运行完毕!!!");
                } catch (InterruptedException e) {
                    e.printStackTrace();
                } finally {
                    countDownLatch.countDown();
                }
            });
        }

        System.out.println("所有线程运行完毕......");

        countDownLatch.await();
        System.out.println("程序继续进入下一步!!!");
    }
}
countDownLatch多线程运行完毕后继续向下运行
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202411/17320885518182.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者