gpt4 book ai didi

java - 如果我依赖于缓慢的服务,如何避免花费处理器时间来等待它?

转载 作者:太空宇宙 更新时间:2023-11-04 11:45:34 26 4
gpt4 key购买 nike

所以我正在使用类似于这样的代码:

public void callSlowService(List<Object> objectsToCallFor) {
objectsToCallFor
.parallelStream()
.forEach(object -> slowService.call(object))
}

slowService.call 大约需要 100-500 毫秒

问题是,我可以并行化我想要的所有内容,但最终我仍然锁定一个线程 500 毫秒,只是等待,而我的 CPU 还可以为其他线程做其他事情。

假设我无法更改其他服务(我不能),我这边是否可以使用其他一些设计,让我的 CPU 在等待 SlowService 响应时可以做其他事情?

最佳答案

你不能。

但是,您可以缓解该问题。使用一个通过 BlockingQueue 馈送的新线程的List<Object> objectsToCallFor并在结果到达时将结果提供给另一个队列。

您仍将等待所需的时间以获得结果,但至少您的主要处理将同时继续。

关于java - 如果我依赖于缓慢的服务,如何避免花费处理器时间来等待它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42385925/

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