我试图了解是否有任何可见性保证由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
上面的代码没有提供这样的保证。)
我已经解决了这个问题,但我认为这不是我需要的。