Java并发编程:CountDownLatch示例

原创 太过爱你忘了你带给我的痛 2024-12-03 19:51 143阅读 0赞

CountDownLatch是Java并发API中的一个工具类,用于协调多个线程的执行。当一个线程调用countDown()方法时,会将计数器减1,直到计数器为0。

下面是一个简单的CountDownLatch示例:

  1. import java.util.concurrent.CountDownLatch;
  2. public class CountDownLatchExample {
  3. public static void main(String[] args) {
  4. // 创建一个计数器,初始值为3
  5. CountDownLatch countDown = new CountDownLatch(3);
  6. // 创建三个线程,每个线程都会调用countDown的down方法来减少计数器
  7. Thread thread1 = new Thread(() -> countDown.countDown());
  8. Thread thread2 = new Thread(() -> countDown.countDown()));
  9. Thread thread3 = new Thread(() -> countDown.countDown()));
  10. // 启动三个线程
  11. thread1.start();
  12. thread2.start();
  13. thread3.start();
  14. // 等待计数器归零,表明所有线程都已经执行完毕
  15. try {
  16. countDown.await();
  17. } catch (InterruptedException e) {
  18. e.printStackTrace();
  19. }
  20. System.out.println("All threads have completed execution.");
  21. }
  22. }

在这个例子中,我们创建了一个初始值为3的CountDownLatch。然后创建了三个线程,每个线程都会调用countDown.countDown()来减少计数器。

当所有线程都已经完成执行时,CountDownLatch.await();会阻塞当前线程,直到计数器归零。这意味着所有需要等待的线程已经执行完毕。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,143人围观)

还没有评论,来说两句吧...

相关阅读