近日同事間正在舉辦關於程序和執行緒的效能差異大討論。有幾個搞linux的幾乎都異口同聲說linux下程序和執行緒是一樣的(想當年我**也這麼說),搞的那位說執行緒高效的同事很鬱悶。
本人查了下相關資料
尤其是linux排程的單位是task ,無論乙個程序還是執行緒都對應乙個核心task。所以從這看,沒差別。
但是,同一程序子執行緒tcb指向的記憶體相同。這意味著task切換,記憶體區的切換工作會少,即cpul1 l2快取要換出的概率小很多。這明顯是提速。
(現在稍微有些小忙,有空的話會去做個試驗,看看猜想對不)
不過程序管理比較方便,有os給它保護。不會像執行緒,乙個飛了整個程序掛了。
linux程序和執行緒
這兩天一直在看linxu程序和執行緒的東西,總是效率比較低,這麼一點基礎的東西還看了這麼久。該自我反省一下。首先來看看程序。程序分為三個部分,程序控制塊,程式段和資料段。程序是乙個有生命的實體,程式是乙個沒有生命的實體。只有cpu賦予程式生命的時候,程式才成為乙個活動的實體,我們稱之為 程序 每乙個...
Linux程序和執行緒
linux核心只有程序,沒有執行緒的概念。非要說區別,那就是執行緒沒有自己的單獨的位址空間 mm struct 執行緒和其父程序共享位址空間。pthread呼叫fork clone vm 來建立新的程序,子程序與父程序共享vm空間。注意,這裡實際上是共享mm struct結構,子程序甚至沒有建立自己...
linux 程序和執行緒
程序和執行緒 程序 process 和執行緒 thread 是作業系統的基本概念,下面用乙個模擬,來解釋它們。1.計算機的核心是cpu,它承擔了所有的計算任務。它就像一座工廠,時刻在執行。2.假定工廠的電力有限,一次只能供給乙個車間使用。也就是說,乙個車間開工的時候,其他車間都必須停工。背後的含義就...