Dans cet exemple, je soumets quelques fichiers à mon objet comparateur. Tout fonctionne bien, sauf que j'ai remarqué que l'ordre dans lequel les fichiers sont soumis n'est pas toujours le même ordre dans lequel ils sont retournés. Des suggestions sur la façon dont je peux mieux contrôler cela?Comment contrôler les commandes dans lesquelles Java Futures est "soumis"?
ExecutorService pool = Executors.newFixedThreadPool(5);
CompletionService<Properties> completion = new ExecutorCompletionService<Properties>(pool);
for (String target : p.getTargetFiles()) {
completion.submit(new PropertiesLoader(target, p));
}
for (@SuppressWarnings("unused")
String target : p.getTargetFiles()) {
Properties r = null;
try {
r = completion.take().get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
p.addTargetFilesProperties(r);
}
pool.shutdown();