java 等前面2个线程执行完,在执行第三个线程
时间: 2023-06-17 15:03:51 浏览: 101
可以使用 CountDownLatch 来实现这个需求。CountDownLatch 是一个同步工具类,可以用来协调多个线程之间的执行。
首先创建一个 CountDownLatch,初始计数器为 2(因为前面有 2 个线程)。然后在第一个线程和第二个线程执行完后,各自调用 countDown() 方法来减少计数器。第三个线程在启动前,调用 await() 方法进行等待,直到计数器为 0,才会开始执行。
示例代码如下:
```java
import java.util.concurrent.CountDownLatch;
public class Example {
public static void main(String[] args) throws InterruptedException {
CountDownLatch latch = new CountDownLatch(2);
Thread t1 = new Thread(() -> {
// 执行第一个线程的代码
latch.countDown();
});
Thread t2 = new Thread(() -> {
// 执行第二个线程的代码
latch.countDown();
});
Thread t3 = new Thread(() -> {
try {
// 等待前两个线程执行完成
latch.await();
// 执行第三个线程的代码
} catch (InterruptedException e) {
e.printStackTrace();
}
});
t1.start();
t2.start();
t3.start();
}
}
```
阅读全文