gpt4 book ai didi

java - 在短时间内用 Java 执行数百万个任务?

转载 作者:搜寻专家 更新时间:2023-11-01 03:37:44 27 4
gpt4 key购买 nike

我需要用 Java 执行大约 8,000,000 个任务。每个任务的运行时间在 1 到 50 毫秒之间。我已经尝试使用循环串行执行这些任务,并使用 ThreadPoolExecutor 并行执行这些任务。显然,在循环中连续运行它们要慢得多,然后通过 ThreadPoolExecutor 运行它们会有显着的性能提升。但是,我对 ThreadPoolExecutor 的性能仍然不满意。

我能够在 4 个内核上使用 15 个线程运行所有 8,000,000 个任务。我在向 ThreadPoolExecutor 提交任务时批处理 50,000 个任务。我允许 ExecutorCompletionService 有 1000 毫秒的超时时间以返回结果。在使用这些参数调整我的应用程序后,我有大约 25 分钟的时间来处理所有 8,000,000 个任务。

有什么方法可以让我的应用程序运行速度超过 25 分钟,也许是 Hadoop(使用多台机器的分布式系统)?我愿意使用其他一些技术或框架。

最佳答案

Akka tutorial展示了 Akka 如何帮助处理并行任务。

我没有任何使用 Akka 的实践经验,但我的理解是它负责根据部署时的配置(例如线程数、进程数、集群中的主机数...)扩展应用程序,任务实现几乎没有变化。

有关维基百科的更多信息:The key points distinguishing applications based on Akka actors

关于java - 在短时间内用 Java 执行数百万个任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25497590/

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