我有一個程序,其中有數千個線程。我目前使用一臺主機處理所有需要花費大量時間的線程。如果我想使用多個主機(比如說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