我读过这个答案:
Difference between wait-notify and CountDownLatch
我知道这两个过程都不同,
我的问题更多的是功能方面:
是否存在等待/通知机制无法解决的情况,但只能通过CountDownLatch解决?
如果没有,那么在功能上,CountDownlatch的引入只是为了让线程之间的协调更简单,更清晰,对吗?
答案 0 :(得分:3)
当然,您可以使用wait,notify,synchronized等创建相同的功能。 CountDownLatch是使用这些原语实现的普通Java类。有关详细信息,您可以查看实际的源代码:http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/concurrent/CountDownLatch.java
答案 1 :(得分:1)
java.util.concurrent
中的类旨在使某些多线程场景更易于编码和管理。您可以使用wait
和notify
等低级结构,但您确实需要知道自己在做什么。
以下是API的摘录:
实用程序类在并发编程中通常很有用。这个 包包括一些小的标准化可扩展框架,如 以及一些提供有用功能的类 否则单调乏味或难以实施。
答案 2 :(得分:1)
考虑一种情况,如果满足条件,您可能不想等待。你可以弄脏你的手并探测锁,但这通常是错误的。
CountDownLatch拯救了,是的,为了方便,但不仅仅是为了解决等待/通知范式。
还明白使用CountDownLatch作为等待多种条件的方法。
为什么在可用的第一方时重新发明轮子?