package com.executorservice;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
public class ExecutorServiceTest {
private class QueryTask implements Callable<String> {
private int i;
public QueryTask(int i) {
super();
this.i = i;
}
public String call() throws Exception {
System.out.println(i);
return "fsfs";
}
}
public void run(){
ExecutorService queryService = Executors.newFixedThreadPool(5);
int i = 0;
List<Callable<String>> l = new ArrayList<Callable<String>>();
l.add((Callable<String>)new QueryTask(i++));
l.add((Callable<String>)new QueryTask(i++));
l.add((Callable<String>)new QueryTask(i++));
l.add((Callable<String>)new QueryTask(i++));
l.add((Callable<String>)new QueryTask(i++));
try {
List<Future<String>> futures = queryService.invokeAll(l);
for(Future future : futures){
System.out.println();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
/**
* @param args
*/
public static void main(String[] args) {
ExecutorServiceTest executorServiceTest = new ExecutorServiceTest();
executorServiceTest.run();
}
}