gpt4 book ai didi

java - 执行器完成服务 : why queue results as Future's

转载 作者:搜寻专家 更新时间:2023-11-01 02:42:40 24 4
gpt4 key购买 nike

我试图找到类 ExecutorCompletionService 将结果排队为 Future<T> 的原因而不是 T仅。

根据 its API take()

"Retrieves and removes the Future representing the next completed task, waiting if none are yet present".

因此,调用 future.get()永远不会阻塞,因为任务生成的产品已 100% 完成。

为什么将该产品封装在 Future 中那么呢?

最佳答案

一方面,Future<T>返回 submit()仍然有一些你没有的可能性只有 T例如 cancel() , isDone()以及get( long timeOut...)等等,所以虽然你可以争辩说 take()可以返回 T也可以说返回 Future<T> 更干净、更灵活。反而。

特别是,它让被叫方有可能确定 Callable已完成或取消(这是 TL;DR 答案)

干杯,

关于java - 执行器完成服务 : why queue results as Future's,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30162971/

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