import org.apache.lucene.util.NamedThreadFactory;
import org.elasticsearch.common.util.concurrent.EsAbortPolicy;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
public class tsese {
public static void main(String[] args) {
ThreadPoolExecutor poolExecutor = new ThreadPoolExecutor(16,16,1, TimeUnit.SECONDS,
new ArrayBlockingQueue<>(100),new NamedThreadFactory("示例线程池"),new ThreadPoolExecutor.AbortPolicy());
List<Callable<HashMap<Integer, Double>>> raskList = new ArrayList<>();
int x = 1;
int y = 2;
raskList.add(()->{
HashMap<Integer,Double> res = new HashMap<>();
double c = add(x,y);
res.put(1,c);
return res;
});
try {
List<Future<HashMap<Integer,Double>>> futures = poolExecutor.invokeAll(raskList);
for (Future<HashMap<Integer, Double>> future : futures) {
while (true) {
if (future.isDone() && !future.isCancelled()) {
HashMap<Integer,Double> res = future.get();
res.forEach((key,val)->{
System.out.println(key+" "+val);
});
break;
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static int add(int x, int y) {
return x+y;
}
}