2010-05-24 119 views
1

可能重複:
Will Multi threading increase the speed of the calculation on Single Processor控制檯機應用與多線程

您好所有, 我重新發布我的多線程問題的單核處理器。

原來的問題是: Will Multi threading increase the speed of the calculation on Single Processor

我一直在問一個問題,在任何給定的時間,只有一個線程被允許在單個內核上運行。如果是這樣,爲什麼人們在應用程序中使用多線程。假設您正在運行控制檯應用程序,並且很有可能編寫應用程序以在主線程上運行。但人們仍然喜歡多線程。

+2

投票結束爲確切的重複 - 我看不出爲什麼你再問這個。 – 2010-05-24 06:12:11

+0

你好喬恩,我想我沒有正確地表達我的問題。我也修改了這個問題。但人們也沒有回答這個編輯的問題。所以我再次貼出來指向舊的queston。希望這一次,我正確地發佈了這個問題。請允許用戶發表他們的評論。謝謝。 – Harsha 2010-05-24 06:53:32

回答

3

「純」CPU工作可能不會更快,但許多任務涉及不在CPU上的東西(例如訪問文件系統,網絡,與用戶交互等)。即使在單核心繫統上,使用多線程也可讓您有一個線程等待文件系統訪問,一個等待網絡操作,一個等待用戶響應等等。

因此,雖然使用多線程不會使CPU密集型進程更快,但它可以使您的應用程序更具響應性(也就是說,它可以更快地響應用戶交互,因爲它不會阻塞等待網絡操作完成,說)。請注意,技術上異步操作將比使用多個阻塞線程更快(因爲您沒有上下文切換的開銷),但多個阻塞線程範例通常比異步編程更易於理解。

+0

感謝您的回覆。但我想知道異步操作如何比多線程更好。如果我沒有錯,異步操作在不同的線程上運行。再次,必須有上下文切換權利。請發佈文章鏈接或有關異步編程如何比多線程更好的解答。 謝謝你的時間。 – Harsha 2010-05-24 06:50:29