import java.util.concurrent.*;
public class ConduitExample {
public static void main(String[] args) {
ExecutorService executorService = Executors.newFixedThreadPool(4);
CompletionService<Integer> completionService = new ExecutorCompletionService<>(executorService);
for (int i = 1; i <= 10; i++) {
final int task = i;
completionService.submit(() -> {
return task * 2;
});
}
for (int i = 1; i <= 10; i++) {
try {
int result = future.get();
System.out.println("Task " + i + " result: " + result);
e.printStackTrace();
}
}
executorService.shutdown();
}
}