Cancelar recursivamente um allOf CompletableFuture

Se eu tiver

CompletableFuture<Something> future1 = service.request(param1);
CompletableFuture<Something> future2 = service.request(param2);
CompletableFuture<Void> many = CompletableFuture.allOf(future1, future2);

o que vai acontecer quando eu fizermany.cancel()? Vaifuture1&nbsp;efuture2&nbsp;ser cancelado também? Caso contrário, qual seria a maneira mais limpa de conseguir isso? Estou relutante em segurarfuture1&nbsp;efuture2, apenas para poder cancelá-los quando eu quiser cancelarmany.

Alguns antecedentes sobre o motivo pelo qual desejo isso: ao receber um dado, preciso solicitar dados correspondentes, potencialmente futuros, para realizar um cálculo. Se um dado mais recente chegar, desejo cancelar a conclusão do cálculo anterior, porque o resultado será imediatamente substituído pelo novo cálculo.