我有ListenAbleFuture列表。我要等待此列表如果尚未完成,则ListenableFuture<SendResult<Integer, String>>
最多15分钟。我该如何实现。
当前我正在执行此操作,但是我不希望每个ListenAbleFuture等待15分钟。
for (ListenableFuture<SendResult<Integer, String>> m : myFutureList) {
m.get(15, TimeUnit.MINUTES) ;
}
ListenableFuture<SendResult<Integer, String>> is from import org.springframework.util.concurrent.ListenableFuture;
我经历过Waiting on a list of Future,但此解决方案仅适用于未来的发展
创建CountDownLatch
,例如new CountDownLatch(50)
,在每个可监听的未来中添加一个监听器,并在每个监听器中向下计数。您可以对所有期货使用相同的侦听器,而不是每次都创建一个新的侦听器。