1 回答

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
您正在尋找的只是異步運(yùn)行您的調(diào)用。您可以使用CompletableFutures 提交任務(wù),然后等待它們完成:
list.stream() //you don't really need a parallel stream
.map(CompletableFuture::runAsync)
.collect(Collectors.toList()) //make sure all tasks are submitted
.stream()
.forEach(CompletableFuture::join);
這將提交所有任務(wù)(異步運(yùn)行),然后等待每個(gè)任務(wù)完成運(yùn)行。發(fā)生這種情況時(shí),該方法將返回。
您可能需要控制異步任務(wù)的線程池。這是一個(gè)使用 10 線程池的示例:
ExecutorService es = Executors.newFixedThreadPool(10);
list.stream()
.map(r -> CompletableFuture.runAsync(r, es))
...
添加回答
舉報(bào)