JAVA中CountDownLatch与thread.join()在同步机制上的具体差异是什么?

2026-06-10 13:532阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1221个文字,预计阅读时间需要5分钟。

JAVA中CountDownLatch与thread.join()在同步机制上的具体差异是什么?

今天学习CountDownLatch这个类,作用感觉和join很像,然后百度了一下,发现它们之间有区别。以下是一些记录。

首先来看一下join。在当前线程中,如果调用某个thread的join方法,那么当前线程会等待该thread执行完毕后再继续执行。

接下来,我们看看CountDownLatch。CountDownLatch可以用来实现线程间的同步。它允许一个或多个线程等待一组事件发生。当这些事件发生时,等待的线程会被唤醒并继续执行。

区别如下:

1. join是用来等待单个线程执行完毕,而CountDownLatch可以等待多个线程执行完毕。

2.join方法调用后,当前线程会完全阻塞,直到目标线程执行完毕。而CountDownLatch不会阻塞当前线程,只是让当前线程等待一定的事件发生。

3.CountDownLatch可以通过多次调用countDown方法来释放等待的线程,而join方法只能调用一次。

以上就是一些简单的记录,希望能帮助你更好地理解这两个概念。

今天学习CountDownLatch这个类,作用感觉和join很像,然后就百度了一下,看了他们之间的区别。所以在此记录一下。

首先来看一下join,在当前线程中,如果调用某个thread的join方法,那么当前线程就会被阻塞,直到thread线程执行完毕,当前线程才能继续执行。join的原理是,不断的检查thread是否存活,如果存活,那么让当前线程一直wait,直到thread线程终止,线程的this.notifyAll 就会被调用。

我们来看一下这个应用场景:假设现在公司有三个员工A,B,C,他们要开会。但是A需要等B,C准备好之后再才能开始,B,C需要同时准备。

阅读全文

本文共计1221个文字,预计阅读时间需要5分钟。

JAVA中CountDownLatch与thread.join()在同步机制上的具体差异是什么?

今天学习CountDownLatch这个类,作用感觉和join很像,然后百度了一下,发现它们之间有区别。以下是一些记录。

首先来看一下join。在当前线程中,如果调用某个thread的join方法,那么当前线程会等待该thread执行完毕后再继续执行。

接下来,我们看看CountDownLatch。CountDownLatch可以用来实现线程间的同步。它允许一个或多个线程等待一组事件发生。当这些事件发生时,等待的线程会被唤醒并继续执行。

区别如下:

1. join是用来等待单个线程执行完毕,而CountDownLatch可以等待多个线程执行完毕。

2.join方法调用后,当前线程会完全阻塞,直到目标线程执行完毕。而CountDownLatch不会阻塞当前线程,只是让当前线程等待一定的事件发生。

3.CountDownLatch可以通过多次调用countDown方法来释放等待的线程,而join方法只能调用一次。

以上就是一些简单的记录,希望能帮助你更好地理解这两个概念。

今天学习CountDownLatch这个类,作用感觉和join很像,然后就百度了一下,看了他们之间的区别。所以在此记录一下。

首先来看一下join,在当前线程中,如果调用某个thread的join方法,那么当前线程就会被阻塞,直到thread线程执行完毕,当前线程才能继续执行。join的原理是,不断的检查thread是否存活,如果存活,那么让当前线程一直wait,直到thread线程终止,线程的this.notifyAll 就会被调用。

我们来看一下这个应用场景:假设现在公司有三个员工A,B,C,他们要开会。但是A需要等B,C准备好之后再才能开始,B,C需要同时准备。

阅读全文