J'essaie de faire des appels parallèles à la méthode getPrice
, pour chaque product
en products
. J'ai ce morceau de code et vérifié que getPrice s'exécute dans des threads séparés, mais ils s'exécutent séquentiellement, pas en parallèle. Quelqu'un peut-il me signaler ce qui me manque ici?Méthode d'appel en parallèle avec CompletablFuture et ExecutorService
Merci beaucoup pour votre aide.
ExecutorService service = Executors.newFixedThreadPool(THREAD_POOL_SIZE);
Set<Product> decoratedProductSet = products.stream()
.map(product -> CompletableFuture
.supplyAsync(() -> getPrice(product.getId(), date, context), service))
.map(t -> t.exceptionally(throwable -> null))
.map(t -> t.join())
.collect(Collectors.<Product>toSet());
Je ne savais pas parallelStream, merci beaucoup! –