2013-09-01 123 views
-5

我在腦海裏有很多關於多線程的基本問題。如果我們一次運行10個線程,那麼在單個實例中只有一個線程將處於活動狀態,並且在線程之間進行切換或者多個線程可以在一個單一的時間?多線程如何工作

+5

您可以重述一下嗎?現在它幾乎沒有任何意義。另外,請說明你所做的研究。 SO不是你的研究助理。 – Gray

+0

如果你看到CPU配置,那麼你會看到類似4 Thread 2 Core的東西。這意味着在時間4線程。如果你一次運行多於4個線程,那麼它會在CLR中被推遲。 – Adrian

+0

閱讀此http://superuser.com/questions/329904/what-are-threads-and-what-do-they-do-in-the-processor如果您的CPU限制爲4個線程,那麼它將不會運行更多4線程在一次。 – Adrian

回答

0

這取決於你的硬件和你的操作系統。如果您的內核數量少於線程數,那麼操作系統可能會交叉這些線程,也就是說,每當其中一個執行例如IO操作時,或者每次完成其時間片時就會切換到另一個線程。

此外,每個核心都運行一個執行線程。這就是多核心的用途。這通常與時間分割行爲混合在一起。

0

這真的取決於你的CPU和程序設計。如果您有四核心PC,則可以同時運行8個線程。

+0

This答案可能會引起誤解。我假設你在談論英特爾的超線程技術。在這種情況下,您應該閱讀以下內容:http://www.makeuseof.com/tag/hyperthreading-technology-explained/ – Andy

0

這取決於硬件。許多當前的處理器芯片包含多個CPU,並且CPU本身可以交織幾個線程。一個大型服務器可能有幾十個處理器芯片。在這樣的系統中,所有10個線程都可以同時運行。

+0

根據類型的不同,單個CPU(核心)甚至可能運行多個線程。考慮UltraSPARC T2處理器,例如,每個處理器內核運行8個線程。 – Jules

0

一次只能運行一個線程,處理器可以快速切換它們。對於如考慮與法術CHK文本編輯器..

U型,這就是一個線程 的前衛CHKS FR錯誤 - 那是另一個線程

現在,如果他們是多線程的,整個過程將在內存空間獲取然後不同的線程將同時執行