java让线程等待_Java中线程等待(同步)的五种方法

论坛 期权论坛 脚本     
已经匿名di用户   2022-3-21 23:59   2725   0

在面试时,经常会有面试官问道,一个主线程有多个子线程,如何能使子线程的业务执行完成之后,再执行主线程业务逻辑。对于这个问题,本人能够想到的有五种方法,详细请移步源码

1、使用线程类自带的join方法,将子线程加入到主线程,在子线程执行完之后,在执行主线程逻辑。

例如

public static void joinDemo()

throws InterruptedException

{

System.out.println("=========Test with join=====");

JoinWorker worker1 = new JoinWorker("worker1");

JoinWorker worker2 = new JoinWorker("worker2");

worker1.start();

worker2.start();

worker1.join();

worker2.join();

doSuperWork();

}

2、使用JDK的并发包中的CountDownLatch类, 使用CountDownLatch,每个线程调用其countDown方法使计数器-1,主线程调用await方法阻塞等待,直到CountDownLatch计数器为0时继续执行,例如

首先,定义子线程

static class CountDownLatchWorker extends Thread

{

S

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP