多執行緒(multi-threading)與平行運算(parallel-computing)

多執行緒(multi-threading)與平行運算(parallel-computing)皆可提高 processor 的使用率,減少 processor 閒置的時間。

現今的 processor 大多都是 multi-core processor,意旨上方會搭載許多核心的 CPUs(cores),而每一顆 CPU 能夠執行一個thread;而硬體上若是支援 multithreading 的技術,則一顆 CPU 則能夠執行多個thread,像是多了更多的CPU。

Multi-threading

雖然如此,實質上 CPU 在同一個時間內僅能夠執行一個 thread,multi-threading 所做的事情是在短時間內快速切換著去執行不同的 thread,給使用者造成同時執行的假象;在等待其中一個 thread 做 I/0 執行另外一個 thread,透過這樣的機制來減少 CPU 閒置的時間,提高 processor 的使用率。

Parallel Computing

當我們把演算法寫入程式,並被編譯成一連串的指令給 processor 做執行,這些指令皆會被送至單一顆 CPU,循序的被執行。而平行運算則是將問題拆解成數個子問題,分派給不同的 CPU 執行,減少其他 CPU 閒置的時間,提高 processor 的使用率。