J'ai le code suivant:seule tâche CompletableFuture qui se poursuit avec de nombreuses tâches parallèles
return CompletableFuture.supplyAsync(() -> {
return foo; // some custom object
})
.thenAccept(foo -> {
// ??? need to spawn N async parallel jobs that works on 'foo'
});
En anglais: la première tâche crée l'objet foo
de manière asynchrone; et puis j'ai besoin d'exécuter N processus parallèles sur elle.
Y at-il une meilleure façon de le faire alors:
...
CompletableFuture[] parallel = new CompletableFuture[N];
for (int i = 0; i < N; i++) {
parallel[i] = CompletableFuture.runAsync(() -> {
work(foo);
});
}
CompletableFuture.allOf(parallel).join();
...
Je n'aime pas cela comme un thread est verrouillé en travaux en attente N à la fin.
Pourquoi avez-vous cette ligne 'CompletableFuture.allOf (parallel) .join();' lorsque vous ne voulez pas attendre la fin? Personne ne vous demande d'attendre ... – Holger
J'étais aveugle en ce moment. – igr