我有一个程序,其中有数千个线程。我目前使用一台主机处理所有需要花费大量时间的线程。如果我想使用多个主机(比如说10个主机,每个主机运行100个不同的线程),我应该如何继续?使用多个主机运行多线程程序
-4
A
回答
0
在单个JVM上有数千个线程听起来像一个坏主意 - 你可能花大部分时间进行上下文切换而不是做实际的工作。
要跨多个主机分割您的工作,您不能使用由单个JVM管理的线程。您需要让每台主机都暴露一个可以接收部分工作并返回已完成工作结果的API。
一种方法是使用Java RMI(远程方法调用)来完成此任务,但实际上,您的问题缺乏如此多的细节,以便决定选择哪种架构。
0
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.
相关问题
- 1. Java,多线程应用程序,运行时的主窗口
- 2. 运行多个UI线程
- 3. 在多个域上运行的多个python web应用程序(虚拟主机)?
- 4. 使用多线程时程序运行速度较慢
- 5. 使用多线程运行Odd偶程序时得到异常
- 6. python多线程长线程运行
- 7. Tensorflow:使用多线程加载/运行多个模型
- 8. JavaFX多次运行线程
- 9. 运行的线程太多
- 10. 如何确认我的java使用多线程机制运行
- 11. 主题 - 多线程
- 12. 运行一个多线程程序同步非常慢Java
- 13. cassandra运行多个应用程序
- 14. 在多线程CMD行应用程序
- 15. 多线程程序随机崩溃
- 16. C:关机的多线程程序
- 17. 运行多个线程同时
- 18. 在Java中运行多个线程
- 19. 在XPages中运行多个线程
- 20. 同时运行多个线程
- 21. 在java中运行多少个线程?
- 22. C++多机多线程
- 23. 多线程程序
- 24. 应用程序内的多个线程
- 25. Cocoa 10.5多线程应用程序运行缓慢
- 26. 如何运行多线程应用程序?
- 27. 在运行时禁用多线程
- 28. 如何创建多个线程池(即多个执行程序,每个线程池都有一个线程)
- 29. 并行运行的多线程C++程序使用矢量<thread>和.join()
- 30. Python多线程 - 主线程块socket.connect
你在做什么与所有这些线程,到底是什么? –
我认为这个问题太广泛了。 你有没有想过一些想法?你能提供一些关于你所做工作性质的更多细节。 – zuckermanori
如果你必须在这样的规模上进行计算,你可以开始研究这种需求的技术构建:像Hadoop,火花/风暴......但显然你的问题太广泛了! – GhostCat