gpt4 book ai didi

java - Java中有多少 Futures 太多了?

转载 作者:行者123 更新时间:2023-12-03 12:58:26 26 4
gpt4 key购买 nike

在尝试确定 Java 数据处理服务器中的任务应该如何分解时,我需要知道有多少 Futures 对 ExecutorService 来说太多了。
据我了解,ExecutorServices 带有一个重量级线程池,像处理绿色线程一样处理 Futures,这意味着在 Futures 之间执行上下文切换的成本非常小。这是真的?
我应该向 ExecutorService 提交数百万个 Futures(使用池中固定数量的线程)吗?
我是否可以期望将许多非常短暂的 future (10 毫秒)提交到 Executor 服务中而不会看到严重的性能下降?

最佳答案

您正在混淆 Future ,它表示具有 Thread 的异步操作的可能结果它代表对 Callable 执行处理的能力(至少在 Executor 的情况下)。
没有什么可以阻止您调用 submit在线程池上数百万次并得到一个巨大的列表 Future供您等待的对象。如果应用程序将继续运行并且您不需要处理结果,您甚至不需要等待它们完成。
但。
如果您创建所有这些作业,它们将需要内存来保持其状态。如果该内存以某种方式是作业输入或作业执行结果的一部分,那么您将为所有这些任务提供堆空间。你不能永远这样做。从本质上讲,如果您要将大量工作拉入进程以在后台运行,则需要考虑某种限制。

关于java - Java中有多少 Futures 太多了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63941131/

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