多线程,并发线程如何工作?

时间:2011-11-23 14:18:20

标签: multithreading

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

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

1 个答案:

答案 0 :(得分:6)

这是一个非常的大问题。

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

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

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

建议您read up on the basics.