-
使用场景:CountDownLatch通常用于一次性事件的等待,如启动服务前等待多个服务初始化完成;而CompletableFuture用于构建复杂的异步编程,它支持更丰富的操作,如转换结果、组合多个阶段、处理错误等。
-
可重用性:CountDownLatch不能被重置,当计数器到达零后,它就不能再使用了。CompletableFuture是可以多次使用的,并且它的每个阶段都可以独立处理。
-
功能性:CompletableFuture 提供了更加丰富的功能,能够代表一个异步计算的结果,同时也能被链式地处理;CountDownLatch 更简单且专一,只用于在一个时间点上同步多个线程的行为。
特性 | CountDownLatch | CompletableFuture |
功能 | 简单的同步 | 丰富的同步、异步、通信功能 |
使用难度 | 简单 | 复杂 |
适用场景 | 简单的同步场景 | 各种同步、异步场景 |