美文网首页JAVA基础
JAVA主线程等待所有子线程执行完后才开始执行

JAVA主线程等待所有子线程执行完后才开始执行

作者: 在岁月中远行 | 来源:发表于2022-05-11 00:15 被阅读0次

1 使用线程池方法:

运行效果可以看到:

2 使用countDownLatch同步工具类

CountDownLatch countDownLatch=new CountDownLatch(2);

Log.e("tanlin", "主线程开始执行");

ThreadPoolExecutor threadPoolExecutor=new ThreadPoolExecutor(10,10,0l,

        TimeUnit.MILLISECONDS,new LinkedBlockingQueue<>());

threadPoolExecutor.submit(new Runnable() {

@Override

    public void run() {

try {

Thread.sleep(1000);

            Log.e("tanlin", "子线程执行1");

            countDownLatch.countDown();

        }catch (InterruptedException e) {

e.printStackTrace();

        }

}

});

threadPoolExecutor.submit(new Runnable() {

@Override

    public void run() {

try {

Thread.sleep(1000);

            Log.e("tanlin", "子线程执行2");

            countDownLatch.countDown();

        }catch (InterruptedException e) {

e.printStackTrace();

        }

}

});

try {

countDownLatch.await();

}catch (InterruptedException e) {

e.printStackTrace();

}

Log.e("tanlin", "两个子线程执行完,主线程继续执行");

这两种方式比较优雅,当然还有其他各种方式。

相关文章

  • JAVA主线程等待所有子线程执行完后才开始执行

    1 使用线程池方法: 运行效果可以看到: 2 使用countDownLatch同步工具类 CountDownLat...

  • 线程-11.24

    1.使用threading模块 单线程执行: 多线程执行: 主线程会等待所有的子线程结束后才结束 查看线程数量: ...

  • CountDownLatch的使用

    CountDownLatch是java中一个协调多线程的工具类,假如多线程在执行后,需要等待所有都执行完再执行下一...

  • Java 面试题

    java多线程实现主线程等待子线程执行完问题 1、使用Thread的join()方法,join()方法会阻塞主线程...

  • Java面试-多线程问题整理

    1.如何让线程顺序执行: 1.thread.join 方法,可以让主线程等待子线程执行完之后,再执行。 jion方...

  • Java基础(五)-多线程-2

    问:如何实现子线程先执行,主线程再执行答: 启动子线程后,立即调用该线程的join()方法,则主线程必须等待子线程...

  • Python多线程

    1、两种创建方式 : 2、线程的执行: t.start() 表示开始执行,主线程会等着子线程执行完后再结束3、线...

  • DispatchGroup.wait()和DispatchGro

    wait()会等待线程执行完载执行之后的逻辑,阻塞当前线程 notify()不会阻塞当前线程,先执行notify后...

  • JS 异步理解

    一、异步 JS的异步:新开一个子线程,在主线程执行完之后,执行子线程, 第二个参数:时间,代表在子线程中等待执行的...

  • JAVA线程相关

    thread.join() 等待thread线程执行完才继续向下执行代码,但是可以执行之前的线程Thread.sl...

网友评论

    本文标题:JAVA主线程等待所有子线程执行完后才开始执行

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