標籤:

線程、進程、超線程

今天搜狗計算機視覺筆試簡答題有個線程、進程、超線程的概念及其區別的問題。感覺當時回答的很水,特地總結下:

進程:進程是操作系統分配資源的基本單位,每個進程擁有虛擬後的獨立的內存空間、存儲空間、CPU資源。隨手截了一張系統進程圖,可以看到QQ、瀏覽器等均為一個獨立的進程。

線程:線程是CPU調度的基本單位,同一進程的各個線程共享各種資源。我們知道CPU在每個時間片只能執行一個線程(不考慮超線程技術),因此當線程的IO較多時,我們開啟多個線程可以提高CPU的利用率。例如一般我們會為下載等操作單開一個線程。線程內的通訊成本要遠低於進程間,因為共享資源啊。所以,在進行多線程的時候還要記得對於共享資源的保護,尤其是全局變數。

超線程:計算機資源的虛擬化程度越來越高,牙膏廠十幾年前提出了超線程,就是將CPU的一個物理核心抽象為兩個線程核心,假裝一個物理核心可以同時做到線程級別的並行。也就是我們經常看到的四核八線程、八核十六線程等。

推薦閱讀:

TAG:多線程 |