据甲骨文说,
ForkJoinPool.commonPool()中运行的任务以调用给定供应商获得的值异步完成静态CompletableFuture supplyAsync(供应商)返回一个新的CompletableFuture。 静态CompletableFuture supplyAsync(供应者,执行者执行器)返回一个新的CompletableFuture,该新CompletableFuture是由在给定执行器中运行的任务异步完成的,该任务的值是通过调用给定的供应商获得的。
如果我使用“ CompletableFuture supplyAsync(供应商)”方法,则默认使用。这将返回一个ForkJoinPool,它的工作线程数等于正在运行的机器中可用的核心数。
但是,我想在我的自定义工作线程数中使用ForkJoinPool。使用ForkJoinPool.commonPool()我无法做到这一点。
那么,如何使用CompletableFuture.supplyAsync方法与我声明的ForkJoinPool一起使用我想要的工作线程数呢?
发布于 2016-04-12 10:29:41
ForkJoinPool实现了Executor。
因此,您可以这样编写代码:
int threadCount = 3;
ForkJoinPool myPool = new ForkJoinPool(threadCount);
CompletableFuture cf = CompletableFuture.supplyAsync(mySup, myPool);https://stackoverflow.com/questions/36569775
复制相似问题