没有executor入参的supplyAsync,任务是谁执行的?

与系统环境和配置有关,一般来说,如果可用的CPU核数大于2,会使用Java 7引入的Fork/Join任务执行服务,即ForkJoinPool.common-Pool(),该任务执行服务背后的工作线程数一般为CPU核数减1,即Runtime.getRuntime(). availableProcessors()-1,否则,会使用ThreadPerTaskExecutor,它会为每个任务创建一个线程。

对于CPU密集型的运算任务,使用Fork/Join任务执行服务是合适的,但对于一般的调用外部服务的异步任务,Fork/Join可能是不合适的,因为它的并行度比较低,可能会让本可以并发的多任务串行运行,这时,应该提供Executor参数

#函数式编程##java原理#
27届毕业生-Java面试专辑 文章被收录于专栏

帮您起飞,助您着陆心仪大厂。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务