了解 CompletableFuture::runAsync

2023-12-25

我刚刚读过文档 https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html#runAsync-java.lang.Runnable-java.util.concurrent.Executor- about CompletableFuture::runAsync并且对这个解释感到非常困惑。这是那里写的内容:

返回一个新的CompletableFuture这是由异步完成的 运行给定操作后在给定执行器中运行的任务。

据我了解,CompletableFuture好像Future这样它就可以“注册”某种回调,并在给定的操作完成后隐式调用它们。

考虑到这一点,让我们考虑以下代码:

ExecutorService threadsPool;
Runnable r;
//...
CompletableFuture.runAsync(r, threadsPool);

在此代码中我们注册了Runnable在给定的时间内异步执行ThreadPool.

但是这是什么意思CompletableFuture由任务异步完成。任务如何才能使CompletableFuture完成...?这对我来说没有多大意义。


Inside CompletableFuture有以下代码被调用runAsync.

static CompletableFuture<Void> asyncRunStage(Executor e, Runnable f) {
    if (f == null) throw new NullPointerException();
    CompletableFuture<Void> d = new CompletableFuture<Void>();
    e.execute(new AsyncRun(d, f));
    return d;
}

AsyncRun是异步执行的任务,运行后将Runnable f, 完成CompletableFuture d异步地。我不会打扰这里的代码,因为它的信息量不大,它只是执行以下操作的完成d通过调用其postComplete()方法(包私有的方法)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

了解 CompletableFuture::runAsync 的相关文章

  • 如何在 Eclipse 中用阿拉伯语读写

    我在 eclipse 中编写了这段代码来获取一些阿拉伯语单词 然后打印它们 public class getString public static void main String args throws Exception PrintS
  • Java 创建浮雕(红/蓝图像)

    我正在编写一个 Java 游戏引擎 http victoryengine org http victoryengine org 并且我一直在尝试生成具有深度的 3D 图像 您可以使用那些红色 蓝色眼镜看到 我正在使用 Java2D 进行图形
  • 由于连接超时,无法通过 ImageIO.read(url) 获取图像

    下面的代码似乎总是失败 URL url new URL http userserve ak last fm serve 126 8636005 jpg Image img ImageIO read url System out printl
  • MI设备中即使应用程序被杀死,如何运行后台服务

    您好 我正在使用 alaram 管理器运行后台服务 它工作正常 但对于某些 mi 设备 后台服务无法工作 我使用了服务 但它无法工作 如何在 mi 中运行我的后台服务 MI UI有自己的安全选项 所以你需要的不仅仅是上面提到的粘性服务 你需
  • Java:从元素创建 DOM 元素,而不是文档

    如您所知 在 Java 中创建 Dom 元素的正确方法是执行以下操作 import org w3c dom Document import org w3c dom Element Document d Element e e d creat
  • Spring Stomp over Websocket:流式传输大文件

    我的SockJs客户端在网页中 发送帧大小为16K的消息 消息大小限制决定了我可以传输的文件的最大大小 以下是我在文档中找到的内容 Configure the maximum size for an incoming sub protoco
  • 所有junit测试后的清理

    在我的项目中 我必须在所有测试之前进行一些存储库设置 这是使用一些棘手的静态规则来完成的 然而 在所有测试之后我不知道如何进行清理 我不想保留一些神奇的静态数字来引用所有测试方法的数量 我应该一直维护它 最受赞赏的方法是添加一些侦听器 该侦
  • cucumber-junit-platform-engine 中的功能文件发现

    In cucumber junit我使用的库 CucumberOptions定义功能文件位置 package com mycompany cucumber import cucumber api CucumberOptions import
  • 想要开发像 Facebook 这样的网站 - 处理数百万个请求 - 高性能 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想用 Java 开发一个像 Fac
  • Java:VM 如何在 32 位处理器上处理 64 位“long”

    JVM 如何在 32 位处理器上处理 64 位的原始 long 在多核 32 位机器上可以并行利用多个核心吗 64 位操作在 32 位机器上慢了多少 它可能使用多个核心来运行不同的线程 但不会并行使用它们进行 64 位计算 64 位长基本上
  • 覆盖 MATLAB 默认静态 javaclasspath 的最佳方法

    MATLAB 配置为在搜索用户可修改的动态路径之前搜索其静态 java 类路径 不幸的是 静态路径包含相当多非常旧的公共库 因此如果您尝试使用新版本 您可能最终会加载错误的实现并出现错误 例如 静态路径包含 google collectio
  • jmap - 组织和堆操作会给 jvm 带来开销吗?

    正如标题所述 需要多少开销jmap histo and jmap heap分别带到jvm 如果一个内存敏感的 Java 进程处于OutOfMemory 例如 大约 96 的堆已满 并且无法通过 full gc 清除 其中一项操作是否有可能将
  • 在 AKKA 中,对主管调用 shutdown 是否会停止其监督的所有参与者?

    假设我有一位主管连接了 2 位演员 当我的应用程序关闭时 我想优雅地关闭这些参与者 调用supervisor shutdown 是否会停止所有参与者 还是我仍然需要手动停止我的参与者 gracias 阻止主管 https github co
  • ExceptionHandler 不适用于 Throwable

    我们的应用程序是基于 Spring MVC 的 REST 应用程序 我正在尝试使用 ExceptionHandler 注释来处理所有错误和异常 I have ExceptionHandler Throwable class public R
  • 如何在android sdk上使用PowerMock

    我想为我的 android 项目编写一些单元测试和仪器测试 然而 我遇到了一个困扰我一段时间的问题 我需要模拟静态方法并伪造返回值来测试项目 经过一些论坛的调查 唯一的方法是使用PowerMock来模拟静态方法 这是我的 gradle 的一
  • 阻止 OSX 变音符号为所有用户禁用 Java 中的 KeyBindings?

    注 我知道这个问题 https stackoverflow com questions 40335285 java keybinds stop working after holding down a key用户必须输入终端命令才能解决此问
  • 如何移动图像(动画)?

    我正在尝试在 x 轴上移动船 还没有键盘 我如何将运动 动画与boat png而不是任何其他图像 public class Mama extends Applet implements Runnable int width height i
  • 为什么 BufferedWriter 不写入文件?

    我有这个代码 String strings Hi You He They Tetrabenzene Caaorine Calorine File file new File G words txt FileWriter fWriter Bu
  • Spring Boot MSSQL Kerberos 身份验证

    目前在我的春季靴子中application properties文件中 我指定以下行来连接到 MSSql 服务器 spring datasource url jdbc sqlserver localhost databaseName spr
  • Java 推断泛型类型

    我正在寻找类似的推断捕获泛型类型的概念 类似于以下方法片段 但不是捕获泛型类型的类 public

随机推荐

  • 有没有办法以编程方式从 Cocoa 连接到远程服务器?

    是否有 Cocoa objC API 调用来模仿 Finder 中的 连接到服务器 操作 Automator 可以做到这一点 所以 Finder 似乎在某个地方有一个钩子 原来有一个旧的 Carbon 函数 找不到 Cocoa 的等价函数
  • 抽象方法错误

    我正在 netbeans 中开发一个项目 当我使用 glassfish 3 1 2 启动它时 一切正常 但是当我调用映射到以下方法的 invite url 时 RequestMapping value invite method Reque
  • 如何判断一个点是否在3个点的外接圆内?

    有什么简单的解决办法吗 或者有人有实施的例子吗 谢谢 乔纳斯 我们打电话吧 a b c 我们的三点 C a b c 的外接圆 还有一点 确定 d 是否在 C 中的快速方法是计算行列式 ax dx ay dy ax dx ay dy det
  • 我可以在显示之前获得正确的 JComponent 大小吗?

    JComponent 的大小何时计算 在屏幕上显示之后还是之前 如果我发送 getSize 之前留言 setVisible true 它会给我right回答 谢谢 例如 我有时会在调试时检查组件的大小 以找出为什么我看不到它们 在大多数情况
  • PHP readfile 返回零长度文件

    This is weird 我有一个脚本 可以通过浏览器将本地 zip 文件发送给用户 到目前为止 该脚本运行良好 没有出现任何问题 今天 我的同事通知我该脚本正在发送零长度文件 一些背景信息 脚本出错之前服务器设置没有被修改过 测试了不同
  • 如何将文件从远程复制到主机ansible?

    我正在尝试将文件从远程主机复制到运行 Ansible playbook 的本地服务器 虽然任务总是成功执行 但文件从未复制到本地服务器 这是代码 file path vm info config mode 0777 fetch src vm
  • 通过 objectID 获取 NSManagedObjects 数组返回空数组

    我正在尝试使用从单独的上下文中收集的对象 ID 数组来执行提取操作 以从上下文中检索托管对象 然而 提取返回一个空数组 来自 核心数据编程指南 的 检索特定对象 部分link https developer apple com librar
  • 如何求列表中两个元素的最大乘积?

    我在 hackerrank 竞赛中尝试一个问题来取乐 然后出现了这个问题 我为此使用了itertools 代码如下 import itertools l for in range int input l append int input m
  • 片段事务上的片段重复

    好的 每当我尝试替换应用程序中的片段时 它只会将片段添加到另一个片段所在的容器内 并保留当前片段 我尝试调用替换并引用包含片段的视图 并引用片段本身 这些都不起作用 我可以使用片段事务管理器将片段添加到视图中 但即使我在添加后尝试将其删除
  • 如何在 C# 中停止线程?

    我创建了一个客户端 服务器应用程序 在服务器上我希望有机会停止服务器然后再次启动它 问题是我无法停止侦听 Tcp 连接的线程 如何在 C 中关闭线程 Thanks private void KeepServer while this con
  • 如何在 jQuery Ajax 调用后管理重定向请求

    我在用着 post 使用 Ajax 调用 servlet 然后使用生成的 HTML 片段替换div用户当前页面中的元素 但是 如果会话超时 服务器会发送重定向指令以将用户发送到登录页面 在这种情况下 jQuery 正在取代div元素与登录页
  • 如何将字符串格式化为 .Net 中的固定宽度字段?

    我正在尝试将任意长度的字符串格式化为固定宽度字段以进行显示 我们以宽度为20为例 将要格式化的字符串称为s 我将格式化字符串添加到名为 b 的 StringBuilder 中 Dim b As New System Text StringB
  • 如何在数学表达式中添加星号符号?

    我正在尝试使用 R 值和重要性编码来注释绘图 但我无法通过 作为符号而不是并置运算符 我试过了 plot math 这是我尝试过的 plot 1 10 1 10 text 6 4 expression R 2 8 text 6 4 expr
  • Java 中的国际象棋位板实现

    我正在寻找创建一个基本的国际象棋 或者如果失败 跳棋 跳棋 引擎 研究完该主题后 我相当有信心我想要使用一系列位板 我基本理解这个概念 但在用 Java 表示它们时遇到困难 我尝试使用 long 将棋盘上的白色棋子表示为 1 将其他所有棋子
  • Android - 将字符串转换为字节[]

    我想将 icon 字符串转换为字节数组 然后将其转换为位图 问题是模拟器中的图像未显示 我想我做得不对 但我知道为什么 我将非常感谢你的帮助 提前致谢 这是我的 JSON 数据 project abbreviation abd custom
  • 使用进位标志进行多字加法

    GCC 有 128 位整数 使用这些我可以让编译器使用mul or imul仅一个操作数 指令 例如 uint64 t x y unsigned int128 z unsigned int128 x y 产生mul 我已经使用它创建了一个
  • 使用maven和jenkins部署到weblogic

    我们在项目中使用 Jenkins 在开发环境中进行构建和部署 我已经在 jenkins 中使用 maven 成功创建了一个 war 文件 现在我必须创建另一个作业来将该 war 文件部署到 weblogic 服务器中 但是 我不知道在詹金斯
  • 当 src 不是有效站点时,Safari 不会调用 iframe onload

    对于以下 iframe Safari 永远不会调用 onload 函数 并且不会在 iframe 中显示任何内容 我测试过的所有其他浏览器都会调用 onload 并显示默认错误网页 为什么会发生这种情况 如果这个问题没有解决方案 那么我需要
  • 如何在winform中打上绿色勾号或红色叉号?

    有没有一种方法可以在 Windows 窗体中的标签旁边添加绿色勾号或红色十字 基本上我需要显示配置是否成功 我正在使用c Thanks 很容易做到 您可以在文本标签旁边添加两个图像 甚至是我在本示例中使用的标签 然后手动切换Visible财
  • 了解 CompletableFuture::runAsync

    我刚刚读过文档 https docs oracle com javase 8 docs api java util concurrent CompletableFuture html runAsync java lang Runnable