当前位置: 首页 > 知识库问答 >
问题:

为什么CompletableFuture.runAsync()并不总是提交给ForkJoinPool.common池()?

沙星波
2023-03-14

CompletableFuture。runAsync文档状态:

返回新的CompletableFuture,该Future由运行在ForkJoinPool中的任务异步完成。commonPool()在它运行给定操作之后。

然而,据我所知,runAsync只向ForkJoinPool提交任务。commonPool()whenForkJoinPool。getCommonPoolParallelism()

到底为什么会这样呢?


共有1个答案

贺兴昌
2023-03-14

是的,如果ForkJoinPool并行度级别小于2,则为此处的每个任务创建新线程

所有没有显式执行器参数的异步方法都使用ForkJoinPool执行。commonPool()(除非它不支持至少两个并行级别,在这种情况下,将创建一个新线程来运行每个任务)。

 类似资料:
  • 对于pytorch.randn()方法,文档说明: 返回由均值和方差的正态分布(也称为标准正态分布)中的随机数填充的张量。 额外的问题:我如何生成一个平均数总是为0的随机张量?

  • 我不知道这是与代码有关还是与服务器有关... 在一个PHP页面上,我调用了一个包含标准PHP上传过程的上传函数。在调用函数之后,我执行重定向(尝试使用window.location或header())。 奇怪的是,每件事都运行良好的几次,然后它就不会再上传了(uploadOK也不会是0)。它不会将文件移动到服务器上。 然后,我将取出重定向,上传将重新开始工作。我把重定向放回去,上传还能工作几次,然

  • 然而,今天我在处理一些代码时,意外地发现以下两个交换给出了不同的结果: 这让我难以置信。有人能给我解释一下这里发生了什么吗?

  • 我已经彻底研究了所有的问题,但没有一个直接适用于我的问题。我正在循环访问用户ID数组并匹配它们以从我的firestore DB中获得一个用户。我会毫无问题地返回结果,但当我将其存储在状态数组中并运行控制台日志时,我的状态数组总是空的。第一个console.log工作并显示DB的结果。 请帮帮忙。

  • 我想按英寸计算设备大小。我使用的是每次搜索都会出现的代码。但问题是,当我把设备放在4.5英寸时,我在android studio中的答案是4英寸。我尝试了5.2英寸的设备,得到了4.3英寸和10.1英寸-

  • z-index总是达不到效果,对层这块总是无法用z-index搞定,求指教