這是一個理念問題:提高速度spplication - Java的
我不知道在哪裏把我的問題,對不起,(如果我的questios是題外話),請告訴我,我需要問這個題。我使用單線程應用程序,我使用一次和只有部分內存,但使用多線程(轉換我的單一應用程序到多線程)我可以提高速度(操作系統給我的應用程序更多的時間,如果我有n個線程)?
這個速度是在線程數的功能,
Supose我的OS正在與50個線程(多任務或服務),我的應用程序只能獲得(1/50)CPU的一部分,但如果我的應用程序有10個線程,那麼我的速度是CPU的(10/60)部分...假設所有線程具有相同的優先級...
顯然,這種「改善」不是線性的,這意味着速度會小於(10/60)。
你的概念是什麼?
它完全取決於你的代碼是否可以通過使用多線程來加速 - 你知道[Amdahl's Law](http://en.wikipedia.org/wiki/Amdahl%27s_law)嗎? –
聽起來好像你正試圖通過創建新線程來「竊取」來自其他進程的CPU時間。 (1)無論如何,大多數情況下,您可能無法以100%CPU運行,(2)操作系統通常會考慮到這種貪婪行爲,並降低整個過程的優先級。 – chrylis