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 TaskWithResult implements Callable {
private int id ;
public TaskWithResult(int id) {
this.id = id;
}
@Override
public String call() throws Exception {
return "result of TaskWithResult " + id;
}
public static void main(String[] args) throws Exception {
ExecutorService exec = Executors.newCachedThreadPool();
List> results = new ArrayList>();
for (int i = 0; i < 10; i++) {
results.add(exec.submit(new TaskWithResult(i)));
}
for (Future fs : results) {
System.out.println(fs.get());
}
exec.shutdown();
}
}