我有一个调用两个单独线程的线程。CompletableFuture它向这两个子线程传递相同的内容。如果.get()同时在这两个线程中调用,我会遇到任何类型的并发问题吗?
CompletableFuture?.get()?作为一个具体的例子,在下面的代码中,假设完成cfInput.get()后返回的对象没有发生任何变化,两个线程是否有可能打印不同的值?cfInput
public void mainClass(CompletableFuture<ObjA> cfInput){\n class1.doAsync1(cfInput);\n class2.doAsync2(cfInput);\n}\n\n@Async\npublic void doAsync1(CompletableFuture<ObjA> cfInput){\n //logic\n System.out.println(cfInput.get().getObjB().getBlah());\n //logic\n}\n\n@Async\npublic void doAsync2(CompletableFuture<ObjA> cfInput){\n //logic\n System.out.println(cfInput.get().getObjB().getBlah());\n //logic\n}\n\npublic class ObjA{\n private ObjB objB;\n public ObjB getObjB();\n public void setObjB();\n}\npublic class ObjB{\n private String blah;\n public String getBlah();\n public void setBlah();\n}\nRun Code Online (Sandbox Code Playgroud)\n