use*_*400 3 java multithreading java-8 completable-future
假设我有一个线程调用返回completablefuture的一堆方法,并说我将所有这些添加到列表中,最后我做了completablefutures.allof(list_size).join()).现在列表中的期货可以扩展到多个核心吗?换句话说是将期货安排到多个核心以利用并行性?
Tag*_*eev 10
CompletableFuture代表与某些人相关的任务Executor.如果未明确指定执行程序(例如,您使用CompletableFuture.supplyAsync(Supplier)而不是CompletableFuture.supplyAsync(Supplier, Executor)),则将common ForkJoinPool用作执行程序.这个池可以ForkJoinPool.commonPool()通过默认获得,并且默认情况下它可以创建与您的系统具有的许多硬件线程一样多的线程(通常是核心数,如果您的核支持超线程,则加倍).所以一般来说,是的,如果您使用所有默认值,那么多个核心将用于您的可完成期货.