userFuture = getUser(userId); CompletableFuture<Item> itemFuture = getItem(itemId); userFuture.thenCombine(itemFuture, (user, item) -> { System.out.println("user: " + user.toString() + ", item: " + item.toString()); return null; }).join(); } public CompletableFuture<User> getUser(String id) { // サーバーAにUser情報を取りに⾏く。 } public CompletableFuture<Item> getItem(String id) { // サーバーBにItem情報を取りに⾏く } 1秒 1秒 1秒ちょい