2011-11-23 45 views
2

如果我有双核CPU,是否意味着它最多可以运行2个线程?多线程,并发线程如何工作?

然后;如果是这样,一个人如何运行4个并发线程(当它们看起来受到CPU的限制时)为2个? (因为双核PC最多只能运行2个)。

+1

阅读有关概述http://en.wikipedia.org/wiki/Computer_multitasking – hatchet

+0

一个内核总是可以执行2个线程。如果你有双核心,这意味着你可以同时执行2 * 2 = 4个线程 – msrd0

回答

6

这是一个非常大问题。

基本上你是正确的,双核CPU只能执行两个线程。但是,实际上计划执行的线程数多于两个。此外,操作系统可以在任何时候(几乎)中断正在运行的线程,从而有效地停止执行该线程以允许运行另一个线程。

有很多因素会影响线程如何中断和运行。每个线程都有一个给定的“时间片”,在该时间片中执行,并在该时间片过后,可以停止线程以允许其他线程执行(如果有的话正在等待)。还可以分配线程优先级,以允许优先级较高的任务优先于较低优先级的任务。

一些可以从主CPU卸载(到GPU或磁盘控制器)的工作也可以与其他线程并行运行。

建议大家read up on the basics.