java - CompletableFuture 的 thenAccept 保证可见性
问题描述
我试图了解是否有任何可见性保证由CompletableFuture
.
假设我有一个名为的类SampleClass
,如下所示:
public class SampleClass {
private String member1;
private String member2;
// getters, setters and constructor;
}
我做这样的事情:
SampleClass sampleClass = new SampleClass();
CompletableFuture<Void> cf1 = CompletableFuture.supplyAsync(() -> "Hello")
.thenAccept(sampleClass::setMember1);
CompletableFuture<Void> cf2 = CompletableFuture.supplyAsync(() -> " World")
.thenAccept(sampleClass::setMember2);
cf1.join();
cf2.join();
// sout(sampleClass);
现在,我想了解在sout
声明中,是否存在成员之一或两个成员未初始化的情况?
基本上这里有提供任何可见性保证CompletableFuture
吗?(我的印象是,CompletableFuture
上面的代码没有提供这样的保证。)
我已经解决了这个问题,但我认为这不是我需要的。
解决方案
推荐阅读
- java - 在 Wiremock 中评估 XPath 表达式
- sql-server-agent - 维护作业冻结在执行状态
- r - R:编码循环结构
- wordpress - Wordpress 自定义帖子类型和帖子类型子过滤器
- javascript - 从 React 中的 API 获取数据并使用 Chart.Js 将其可视化
- java - 无法使用 Java/JSP 将数据插入 Apache Derby 数据库
- flutter - 将背景颤动的屏幕录制为流
- git - 如何将文件从一个存储库移动到另一个 git 存储库
- java - 内容类型 'application/x-www-form-urlencoded;charset=UTF-8' 不支持
- javascript - 使用 javascript 或 jQuery 更改背景图像时如何添加淡入和淡出