CompletableFuture 使用交流(其实是困解)
如下代码所示,我使用 CompletableFuture 进行多线程的下载
但是我的 map 里面有 29 个图片 URL,我只得到了 26 张,所以求助大佬们,
1,我的代码哪里有问题
2,求助完整的 CompletableFuture 的使用方式
private static void downloadCompletableFuture(Map<String, String> map) { try { List<CompletableFuture<Void>> futureList = new ArrayList<>(); for (Map.Entry<String, String> stringStringEntry : map.entrySet()) { // image Url String imageUrl = stringStringEntry.getValue(); CompletableFuture<Void> future = CompletableFuture.runAsync(new Runnable() { @Override public void run() { // download picture DownloadPicture3.download(imageUrl); } }); futureList.add(future); } CompletableFuture<Void> allDoneFuture = CompletableFuture.allOf(futureList.toArray(new CompletableFuture[0])); allDoneFuture.get(20, TimeUnit.SECONDS); } catch (Exception e) { e.printStackTrace(); } finally { log.info("end"); // 11:27:37.442 [main] INFO com.ice.http.JucDownloadPicture } } ```
收集的资料