concurrencypuzzlers/src/chapter6/futures/CompletionServiceExample.java
Sander Hautvast 92015eaa63 added links
2019-09-20 14:00:24 +02:00

25 lines
798 B
Java

package chapter6.futures;
import java.util.concurrent.*;
public class CompletionServiceExample {
public static void main(String[] args) throws InterruptedException, ExecutionException {
ExecutorService executor = Executors.newCachedThreadPool();
ExecutorCompletionService<Integer> completionService = new ExecutorCompletionService<>(executor);
for (int i = 1; i < 11; i++) {
final int increment = i;
completionService.submit(() -> {
TimeUnit.SECONDS.sleep(increment);
return increment;
});
}
for (int i = 0; i < 10; i++) {
Future<Integer> future = completionService.take();
int value = future.get();
System.out.println(value);
}
}
}