CountDownLatch 使用
2018-03-12 20:59
106 查看
场景:
我们需要等待4个任务完成之后才能去执行,此时就可以利用CountDownLatch来实现这种功能了。
CountDownLatch是一个同步的辅助类,它可以允许一个或多个线程等待,直到一组在其它线程中的操作执行完成。
一个CountDownLatch会通过一个给定的count数来被初始化。其中await()方法会一直阻塞,直到当前的count被减到0,而这个过程是通过调用countDown()方法来实现的。在await()方法不再阻塞以后,所有等待的线程都会被释放,并且任何await()的子调用都会立刻返回。这是一次性的--count不能被重置。如果你需要一种能重置count的版本,请考虑使用CyclicBarrier。
CountDownlatch是一个多功能的同步工具,可以被用于各种目的。一个CountDownLatch通过一个值为1的count被初始化,来作为一个开/关的门或门闩:所有调用了await()的线程都会在门前等待,直到门被一个线程通过调用countDown()打开。一个被初始化为N的CountDownLatch可以被用来“在N个线程都完成了某种操作(或者一些操作已经被完成了N次)之后创建一个线程”。
CountDownLatch一个有用的属性就是它不需要线程们在继续执行之前,调用countDown来等待count被减到0。它简单地阻止了任何调用了await()的线程继续,直到所有的线程都能够通过。
我们需要等待4个任务完成之后才能去执行,此时就可以利用CountDownLatch来实现这种功能了。
CountDownLatch是一个同步的辅助类,它可以允许一个或多个线程等待,直到一组在其它线程中的操作执行完成。
一个CountDownLatch会通过一个给定的count数来被初始化。其中await()方法会一直阻塞,直到当前的count被减到0,而这个过程是通过调用countDown()方法来实现的。在await()方法不再阻塞以后,所有等待的线程都会被释放,并且任何await()的子调用都会立刻返回。这是一次性的--count不能被重置。如果你需要一种能重置count的版本,请考虑使用CyclicBarrier。
CountDownlatch是一个多功能的同步工具,可以被用于各种目的。一个CountDownLatch通过一个值为1的count被初始化,来作为一个开/关的门或门闩:所有调用了await()的线程都会在门前等待,直到门被一个线程通过调用countDown()打开。一个被初始化为N的CountDownLatch可以被用来“在N个线程都完成了某种操作(或者一些操作已经被完成了N次)之后创建一个线程”。
CountDownLatch一个有用的属性就是它不需要线程们在继续执行之前,调用countDown来等待count被减到0。它简单地阻止了任何调用了await()的线程继续,直到所有的线程都能够通过。
相关文章推荐
- CountDownLatch使用countDown方法来触发其他等待线程再执行的问题
- CountDownLatch的介绍和使用
- java.util.concurrent包(5)――CountDownLatch使用
- 什么时候使用CountDownLatch
- CountDownLatch和CyclicBarrier的简单使用
- 什么时候使用CountDownLatch
- CountDownLatch的使用
- java并发控制,使用countDownLatch代替 synchronized,实时通知
- 什么时候使用CountDownLatch
- 多线程编程11-----CountDownLatch同步工具类的使用
- 什么时候使用CountDownLatch
- CountDownLatch使用示例
- CountDownLatch和CyclicBarrier的使用和区别
- 什么时候使用CountDownLatch
- 多线下,CountDownLatch,Future的使用
- Android多线程合并——使用CountDownLatch干掉第三方SDK的回调函数
- CountDownLatch的介绍和使用
- CountDownLatch使用
- CountDownLatch的介绍和使用
- Java并发包中CountDownLatch的工作原理、使用示例