CompletableFuture 和垃圾收集

2023-11-24

我想触发许多一次性异步 CompletableFutures,如下所示:

for (Job job : jobs) {
 CompletableFuture.supplyAsync(() -> job.process())
   .whenComplete(this::doSomething);
}

理想情况下,这些 CompletableFutures 可以在之后被垃圾收集whenComplete已完成。但是,由于我没有存储参考资料,因此提前收集它们是否存在风险?


您没有明确存储引用,但是supplyAsync是,内部。该方法创建一个CompletableFuture并向ForkJoinPool(如果您使用的是公共池)有对其的引用。这CompletableFuture由返回whenComplete首先成为依赖者CompletableFuture所以也被引用。

所有这些对象都将可用于垃圾回收ForkJoinPool完成执行Supplier, 标记第一个CompletableFuture完成后,触发第二个CompletableFuture,并执行BiConsumer传递给whenComplete.

你安全了。

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

CompletableFuture 和垃圾收集 的相关文章

随机推荐

  • 获取某个 UITableViewCell 的屏幕坐标?

    所以 我有这个UITableView 它位于 iPad 应用程序中 有些单元格的右侧有一个附件按钮 小圆形箭头 当按下该按钮时 我会呈现一个弹出视图 用户可以在其中选择与他们触摸的表格单元格相关的操作 到目前为止 这一切都不是困难的或特殊的
  • 如何在不使用 setInterval/timeout 的情况下检查实时更新?

    建立一个社交网络 我正在尝试获取实时通知 目前 站点使用 setInterval 每隔几秒发送一次 AJAX 请求 它看起来像这样 setInterval function url base dir ajax file php data d
  • 如果 CSS3 过渡不存在,使用 Modernizr 和 jQuery 制作动画

    如果不支持 CSS3 有没有办法结合使用 Modernizr 和 jQuery 来启用类似于过渡的功能 我目前正在做的事情是这样的 div class hoverable p This div changes both width and
  • 交互式过渡非线性

    我正在玩自定义和交互式视图控制器转换 UIPercentDrivenInteractiveTransition 我正在构建一个以模式方式呈现卡片 其他视图控制器 的应用程序 我已经进行了自定义转换UIViewControllerAnimat
  • 使用 MySQL 和 PHP 在 HTML 中创建动态表

    我看过很多关于如何使用 PHP 和 MySQL 在 HTML 中构建表的帖子 但我经常在创建表后更改 SQL 列的标题 PHP 有什么方法可以自动更新代码 这样我只需输入表名 它就会打印表 而无需输入所有内容 th tags th
  • 如何通过名称获取控件名称?

    我有一个简单的功能 其中有一个组合框 如果组合框的值等于 禁用 我将禁用文本框 B 有许多组合框及其相应的文本框 B 按行排列并手动命名 如果组合框 A 被命名为Product1 文本框B将被命名Product1 status 我在想这样的
  • 如何在数据库android中存储图像[重复]

    这个问题在这里已经有答案了 我是 android 新手 我正在创建一个联系人管理器 我已经弄清楚如何将 EditText 字段中的值存储到数据库中 但我不知道如何在数据库中存储图像 我想知道是否有人可以帮助我解决这个问题 package a
  • JavaMail BaseEncode64 错误

    我目前正在开发一个从 gmail 帐户下载附件的应用程序 现在 每次下载压缩附件时都会出错 但是 并非全部 有些我可以毫无错误地检索它 这是异常消息 Exception in thread main com sun mail util De
  • 根据键值删除日期早于所需日期点的行

    我有一个 pd dataframe 如下所示 key value date value 01 2017 01 13 value 01 2018 02 17 value 01 2018 04 02 value 01 2018 05 13 va
  • iOS 7 -- navigationController 正在设置我的 UIScrollView 的 contentInset 和 ContentOffset

    我有一个 UIScrollView 实际上是一个 UICollectionView 但这可能并不重要 当它出现在 IOS 7 中时 导航控制器将其 contentInset 和 contentOffset 设置为我不想要的值 它似乎正在尝试
  • Rails 格式验证——字母数字,但不是纯数字

    测试用户名格式验证的最佳方法是什么 使用字母数字的正则表达式 但不是纯数字 我一直在我的模型中使用以下验证 validates username format gt with gt a z0 9 a z0 9 a z0 9 i 数字用户名
  • 如何在 Python 中使用 ruamel.yaml 从 YAML 文件中获取注释?

    我想从使用加载的 YAML 文件中获取注释字符串ruamel yaml The 项目文件缺少 API 参考 我找不到相关示例 访问评论的正确方式是什么 import ruamel yaml yaml YAML 1 2 C1 a C2 C3
  • Python string.join ( list ) 最后一个条目带有“and”

    有什么优雅的方法可以连接句子部分列表 使结果为 a b 和 c 其中list is a b c 简单指定 join 仅实现 a b c 另外 我确实对此进行了一些搜索 但显然我没有尝试编写短语 因为除了自己枚举列表之外 我还没有想出任何东西
  • 如何在 Javascript 中提取本地图像的元数据?

    我想获取用户拖放到网页中的图像的元数据 我已经设置了拖放功能 但是 图像实际上并未上传到服务器 它是在本地访问的 我仍然可以使用 Javascript 从图像中获取元数据吗 如果是这样 我该怎么做 有哪些好的图书馆 如果没有 我是否必须上传
  • 如何从 C# 中的二维数组中删除行和列?

    如何在 C 中删除二维数组中的特定行和列 int array 1 2 3 4 5 6 7 8 9 假设我想删除第 i 行和第 i 列 跳过它们 对于 nXn 数组而不仅仅是 3x3 并将剩余的数组存储在新数组中 所以输出将是 5 6 8 9
  • 有没有办法检查两个数组是否具有相同的元素?

    假设我有 2 个数组 firstArray 1 2 3 4 5 secondArray 5 4 3 2 1 我想知道它们是否包含相同的元素 而顺序并不重要 我知道我可以编写一个函数对它们进行排序 然后循环遍历它们进行检查 但是是否有为此预先
  • 获取维恩图中的项目列表

    使用以下代码很容易绘制维恩图 library VennDiagram set seed 1 For reproducibility of results xx 1 lt list A sample LETTERS 15 B sample L
  • 通过 IP 访问 IISExpress 以获取 ASP.NET Core API

    我有一个在 IIS Express 上运行的 asp net core 项目 网址 http 本地主机 53142 and https 本地主机 44374 如果我在浏览器中输入本地主机 则可以工作 但是 如果我输入我的 IPv4 IP 地
  • mysql - 查询三个表

    我有一个包含三个表的关系数据库 第一个包含与第二个相关的 id 第二个包含与第三个相关的 id 第三个包含我想要的结果 是否可以使用单个查询来查询第一个表中的 id 该 id 给出了第三个表中与之相关的所有结果 抱歉 我是 mySQL 新手
  • CompletableFuture 和垃圾收集

    我想触发许多一次性异步 CompletableFutures 如下所示 for Job job jobs CompletableFuture supplyAsync gt job process whenComplete this doSo