以下是一个 Java 中 `CountDownLatch` 的用法示例代码: ```java import java.util.concurrent.CountDownLatch; public class CountDownLatchExample { public static void main(String[] args) { // 创建一个初始计数值为 2 的 CountDownLatch CountDownLatch latch = new CountDownLatch(2); // 启动两个工作线程 new WorkerThread(latch, "Worker 1").start(); new WorkerThread(latch, "Worker 2").start(); try { // 等待 CountDownLatch 的计数值变为 0 latch.await(); System.out.println("所有工作完成!"); } catch (InterruptedException e) { e.printStackTrace(); } } static class WorkerThread extends Thread { private CountDownLatch latch; public WorkerThread(CountDownLatch latch, String name) { super(name); this.latch = latch; } @Override public void run() { try { System.out.println(getName() + " 正在工作..."); Thread.sleep(1000); System.out.println(getName() + " 工作完成!"); // 完成工作后,将 CountDownLatch 的计数值减 1 latch.countDown(); } catch (InterruptedException e) { e.printStackTrace(); } } } } ``` 在上述示例中,创建了一个 `CountDownLatch` 对象,初始计数值为 2。然后启动两个工作线程,每个工作线程完成工作后会调用 `countDown` 方法将计数值减 1。在主线程中,使用 `await` 方法等待计数值变为 0,表示所有工作线程都完成了工作。 [2024-08-07 14:11:51 | AI写代码神器 | 401点数解答]