gpt4 book ai didi

java - 即使 Future.get() 从未被调用,是否会在方法执行结束时等待 Future API 调用?

转载 作者:行者123 更新时间:2023-12-02 11:39:49 24 4
gpt4 key购买 nike

所以我有一个服务试图从相当多不同的数据源中理解。

假设我一开始就有这样的事情。

Future<ObjectA> objectAFuture = this.objectAClient.getobjectA(Id);
Future<ObjectB> objectBFuture = this.objectBClient.getobjectB(Id);
Future<ObjectC> objectCFuture = this.objectCClient.getobjectC(Id);
Future<ObjectD> objectDFuture = this.objectDClient.getobjectD(Id);
Future<ObjectE> objectEFuture = this.objectEClient.getobjectE(Id);

接下来,我将调用我自己的数据库,以查看其中哪些是我真正想要的结果,以及我已经有关于使用本地数据源的详细信息。而不是等待外部服务来获取它。

问题:假设我使用过。

objectAFuture.get();
objectEFuture.get();

但是对于 objectBFutureobjectCFutureobjectDFuture ,我没有使用 .get()

我的函数在到达函数末尾时会等待所有这些线程完成,还是会直接发送这些线程然后自行释放?

最佳答案

... I did not use .get().

如果您不使用get ,您将无法检查结果并对其进行处理。但无需等待,直到您调用 get .

Will my function wait for all those to complete when it reaches the end of the function ...

调用wait可以阻止当前线程完成计算(如果有必要 - 如果结果尚未组装)并给你一个 Future<T>实例。

... will it just send those threads to be freed then itself?

当你得到进程的计算结果后,线程就从进程中释放出来。

关于java - 即使 Future.get() 从未被调用,是否会在方法执行结束时等待 Future API 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48666210/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com