В этом примере я отправляю несколько файлов моему объекту сравнения. Все работает нормально, за исключением того, что я заметил, что порядок, в котором файлы отправляются, не всегда совпадает с порядком их возврата. Любые предложения о том, как я могу лучше контролировать это?
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();