2011-11-23 40 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.