使用多个主机运行多线程程序



我有一个程序,可以启动数千个线程。我目前正在为所有线程使用一个主机,这需要很多时间。如果我想使用多个主机(例如 10 个主机,每个主机运行 100 个不同的线程(,我应该怎么做?

在单个 JVM 上拥有数千个线程听起来是个坏主意 - 您可能将大部分时间花在上下文切换上,而不是做实际的工作。

要跨多个主机拆分工作,不能使用由单个 JVM 管理的线程。您需要让每个主机公开一个 API,该 API 可以接收部分工作并返回已完成工作的结果。

一种方法是使用 Java RMI(远程方法调用(来完成此任务,但实际上,您的问题缺少许多细节,这对于决定选择哪种架构很重要。

Creating 1000 threads in on JVM is very bad design and need to minimise count.
High thread count will not give you multi-threading benefit as context switching will be very frequent and will hit performance.
If you are thinking of dividing in multiple hosts then you need parallel processing system like Hadoop /Spark. 
They internally handles task allocation as well as central system for syncing all hosts on which threads/tasks are running.

相关内容

  • 没有找到相关文章

最新更新