反饋內容
什么是countdownlatch?
CountDownLatch的作用就是允许一个或多个线程等待其他线程完成操作,看起来有点类似join () 方法,但其提供了比 join () 更加灵活的API。 CountDownLatch可以手动控制在n个线程里调用n次countDown ()方法使计数器进行减一操作,也可以在一个线程里调用n次执行减一操作。countdownlatch(intn)中的计数器是什么?
CountDownLatch (int N) 中的计数器,可以让我们支持最多等待N个线程的操作完成,或是一个线程操作N次。 如果仅仅只需要等待线程的执行完毕,那么join可能就能满足。 但是如果需要灵活的控制线程,使用CountDownLatch。countdownlatch和join用法的区别是什么?
CountDownLatch和Join用法的区别? 在使用join ()中,多个线程只有在执行完毕之后欧才能被解除阻塞,而在CountDownLatch中,线程可以在任何时候任何位置调用countdown方法减少计数,通过这种方式,我们可以更好地控制线程的解除阻塞,而不是仅仅依赖于连接线程的完成。 从源码可以看出,CountDownLatch是依赖于AbstractQueuedSynchronizer来实现这一系列逻辑的。 队列同步器AbstractQueuedSynchronizer是一个用来构建锁和同步器的框架,它在内部定义了一个被标识为volatile的名为state的变量,用来表示同步状态。