private static ExecutorService executors = new ThreadPoolExecutor(5, 20, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(10), new ThreadFactoryBuilder().setNameFormat("抓数据线程-%d").build());
public static void main(String[] args) throws ExecutionException, InterruptedException { ListeningExecutorService listeningExecutorService = MoreExecutors.listeningDecorator(executors); // 构造返回结果 List<ListenableFuture<String>> futures = Lists.newArrayList(); IntStream.rangeClosed(1, 10).boxed().forEach((page) -> { ListenableFuture<String> listenableFuture = listeningExecutorService.submit(() -> getPageData(page)); futures.add(listenableFuture); }); List<String> strings = com.google.common.util.concurrent.Futures.successfulAsList(futures).get(); strings.forEach(System.out::println); }