我在Java中有一個Process,tat需要4分鐘才能完成。 10個這樣的過程排隊大約需要40分鐘。如果我將一個進程的線程作爲一個線程進行線程處理,那麼所有10個進程都將並行運行,大約需要20分鐘才能完成。是不是假設需要4分鐘才能完成,因爲所有的過程都是並行運行的?JAVA中的多處理器
回答
如果所有這些線程都在單個處理器上運行,則操作系統必須進行時間片切換和上下文切換。這種開銷會增加時間。
除非您有多個處理器來分割工作,否則沒有並行性。線程無法減少單個處理器上的工作。
同時運行的實際線程數通常取決於您的CPU具有的內核數。我想你有一個雙核CPU,因此是時代。
如果CPU上有10個內核,則10個進程只能運行並行。但他們確實同時運行。
只有當你有10個處理器,10個IO系統等
多個線程需要共享資源
是不是它想採取4分鐘到 完整的,因爲所有的過程都是 並行運行?????
只有當您實際上有10個內核並且程序完全受CPU限制時。您的機器只有2個內核,或者程序部分是IO或內存限制的。所有這些都很常見。
我的過程共享一個共同的對象.. Tat會影響性能多遠 – SriHarish 2011-04-29 12:28:58
@SriHarish:那隻會是如果在該對象上存在嚴重爭用的同步,則是相關的 – 2011-04-29 12:57:42
這取決於你的流程在做什麼。如果例如一個進程執行大量IO操作,而其他進程執行大量計算操作,但他們確實只會一起執行這4個操作。
如果兩個進程都採用相同的資源,則需要更長的時間,因爲必須等待資源可用。
多久螺紋加工需要不能是說,如果你不告訴我們過程做什麼,它在運行,還有什麼正在運行,等等,等等等等
這就像divididing了將工作合同分爲5份合同 - 電器,木工,油漆,景觀和地板。如果你僱用5個人,它將花費你1/5的時間,但如果你只有一個,它需要花費相同的時間。
另一個想法是,多線程只會改善解決問題的時間,如果問題是可並行化的並且沒有共享資源可能會阻礙進程。我發現如果某些應該可並行化的東西在並行化時表現出差的性能,那是因爲訪問共享資源。
如果只有生命如此簡單。首先,假設你只有一個沒有超線程技術的CPU,所以在你的機器上,任何時候只有一個線程在運行。現在考慮可能的任務配置文件中的兩個極端:
CPU綁定 - 您的任務確實需要四分鐘才能完成。
IO-bound(或者網絡,如果你喜歡的話) - 每個任務都轉到同步Web服務,需要4分鐘才能提供結果。
在情況1中,添加線程無濟於事。你的單核仍然需要相同的時間才能完成所有的數學任務。你絕對必須擁有更多的CPU才能使其更快。
在情況2中,假設網站響應時間不會在負載下降低,您可能更合理地預計總時間爲4分鐘。每個線程啓動它的請求,然後它處於等待狀態,直到Web響應到達,允許其他線程啓動它們自己的請求。
實際上,您的任務可能會有一些I/O和CPU延遲混合在一起,產生您實際看到的「中間1到2」總執行時間。
您也一定不要忘記管理機器上其他進程的開銷(即使系統進程必須被管理)和進程的操作系統管理 - 對於您包含在每個新線程中的每個新線程處理。
- 1. Python中的多處理器
- 2. Java多重處理
- 3. 單處理器或多處理器
- 4. 單處理器和多處理器中的自旋鎖
- 5. java中的多重處理異常
- 6. Java中的多處理使用ProcessBuilder
- 7. java中的多線程處理
- 8. 如何處理Java中的多個流?
- 9. Java隊列中的多線程處理
- 10. Java的預處理器
- 11. Java的預處理器
- 12. BCP多處理器
- 13. 多處理器python
- 14. FORTRAN多處理器
- 15. Clojure中的處理器數量? Java interop
- 16. C#中的Java預處理器
- 17. 處理Java中
- 18. 的Netty和多處理器
- 19. 多處理器機器上的Java堆和GC?
- 20. 在Java中處理多個時區
- 21. SQL Server中的多處理器用法
- 22. 多核心處理器中的線程
- 23. 多處理器下的Python多處理RemoteManager.Process
- 24. 帶多處理管理器的EOFError
- 25. 流多處理器,每個流處理器的核心cuda
- 26. 在Java中處理多個過濾器-MySql
- 27. 在Java中處理多個TCP連接(服務器端)
- 28. 可以在多處理器環境中執行Java線程嗎?
- 29. 多核處理器上的多線程
- 30. 多核處理器的多線程
剛開始輸入相同。 – Anatolij 2011-04-29 11:48:15
除了大部分時間被阻塞的I/O繁重任務外。 – 2011-04-29 11:49:43
如果程序交替限制CPU和IO,線程可以幫助單個核心繫統。 – 2011-04-29 11:50:49