java 多线程统计
private final static ThreadFactory NAMED_THREAD_FACTORY = (Runnable r) -> new Thread(r, "namexx" + r.hashCode()); private final static ExecutorService EXECUTOR = new ThreadPoolExecutor(8, 16, 180, TimeUnit.SECONDS, new LinkedBlockingQueue<>(), NAMED_THREAD_FACTORY);
List<Future<Object>> futures = new ArrayList<>(); for (int j = 0; j < deptDtos.size(); j++) { Future<Object> future = EXECUTOR.submit(new TaskEvaluation(para)); futures.add(future); } for (int k = 0; k < futures.size(); k++) { Object = futures.get(k).get(); } //排列 list.sort(Comparator.comparing(Object::getScore).reversed()); return list;
/** * 统计task */ class Task1 implements Callable<Object> { private String para; public TaskEvaluation(String para) { this.para = para; } @Override public Object call() { return getxxSig(para); } }