假设我有一个线程调用一堆返回 completablefuture 的方法,然后说我将它们全部添加到列表中,最后我执行 completablefutures.allof(list_size).join()
。现在列表中的 future 可以扩展到多个核心吗?换句话说, future 是否被安排到多个内核中以利用并行性?
最佳答案
CompletableFuture
表示与某些 Executor
关联的任务.如果你没有明确指定执行器(例如,你使用 CompletableFuture.supplyAsync(Supplier)
而不是 CompletableFuture.supplyAsync(Supplier, Executor)
) ,那么普通的 ForkJoinPool
被用作执行器。这个池可以通过 ForkJoinPool.commonPool()
获得,默认情况下它创建与您的系统拥有的硬件线程一样多的线程(通常是核心数,如果您的核心支持超线程,则将其加倍)。所以一般来说,是的,如果您使用所有默认值,那么多个核心将用于您可完成的 future 。
关于java - Java 8 中的 completableFuture 是否可以扩展到多核?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37582196/