Ответ теперь выглядит намного лучше @Valery. Я удалил свой предыдущий комментарий, так как он больше не актуален.
у меня есть
CompletableFuture<Something> future1 = service.request(param1);
CompletableFuture<Something> future2 = service.request(param2);
CompletableFuture<Void> many = CompletableFuture.allOf(future1, future2);
что будет когда я сделаюmany.cancel()
? Будетfuture1
а такжеfuture2
быть отмененным, а? Если нет, то какой будет самый чистый способ достичь этого? Я не хочу держатьсяfuture1
а такжеfuture2
просто чтобы иметь возможность отменить их, когда я хочу отменитьmany
.
Некоторые предыстории, почему я хочу это: при получении части данных мне нужно запросить сопоставление, потенциально будущие данные для выполнения вычислений. Если прибывает новый фрагмент данных, я хочу отменить завершение более раннего вычисления, потому что результат будет немедленно заменен новым вычислением.