linux進程和線程的性能差異(猜)

近日同事間正在舉辦關於進程和線程的性能差異大討論。有幾個搞Linux的幾乎都異口同聲說linux下進程和線程是一樣的(想當年我師父也這麼說),搞的那位說線程高效的同事很鬱悶。

本人查了下相關資料

尤其是https://www.ibm.com/developerworks/cn/linux/l-inside/

linux調度的單位是TASK ,無論一個進程還是線程都對應一個內核TASK。所以從這看,沒差別。

但是,同一進程子線程TCB指向的內存相同。這意味着TASK切換,內存區的切換工作會少,即CPUL1 L2緩存要換出的概率小很多。這明顯是提速。

(現在稍微有些小忙,有空的話會去做個試驗,看看猜想對不)

不過進程管理比較方便,有OS給它保護。不會像線程,一個飛了整個進程掛了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章