2013-09-01 75 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错误 - 那是另一个线程

现在,如果他们是多线程的,整个过程将在内存空间获取然后不同的线程将同时执行