AE
Size: a a a
AE
AE
U
U
YM
CompletableFuture<Integer> mustReturn42() {
CompletableFuture<Integer> fastRequest = CompletableFuture.supplyAsync(
() -> {
if (new Random().nextBoolean()) {
return 42;
} else {
return 1;
}
});
CompletableFuture<Integer> slowRequest =
CompletableFuture.supplyAsync(
() -> {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
return 41;
});
return fastRequest.thenCompose(
fastResult -> {
if (fastResult == 42) {
return CompletableFuture.completedFuture(42);
} else {
// this is a data race, right?
return slowRequest.thenApply(slowResult -> slowResult + fastResult);
}
});
}
есть ли тут гонка по данным?T
GS
DC
GS
DK
DP
GS
DK
А
А
А