程序 執行緒 多程序 多執行緒之間的差異以及優缺點

2021-08-13 12:16:15 字數 937 閱讀 8224

ibm有個傢伙做了個測試,發現切換執行緒context的時候,windows比linux快一倍多。進出最快的鎖(windows2k的 critical section和linux的pthread_mutex),windows比linux的要快五倍左右。當然這並不是說linux不好,而且在經過實際程式設計之後,綜合來看我覺得linux更適合做high performance server,不過在多執行緒這個具體的領域內,linux還是稍遜windows一點。這應該是情有可原的,畢竟unix家族都是從多程序過來的,而 windows從頭就是多執行緒的。

如果是unix/linux環境,採用多執行緒沒必要。多執行緒比多程序效能高?誤導!應該說,多執行緒比多程序成本低,但效能更低。在unix環境,多程序排程開銷比多執行緒排程開銷,沒有顯著區別,就是說,unix程序排程效率是很高的。記憶體消耗方面,二者只差全域性資料區,現在記憶體都很便宜,伺服器記憶體動輒若干g,根本不是問題。

多程序是立體交通系統,雖然造價高,上坡下坡多耗點油,但是不堵車。多執行緒是平面交通系統,造價低,但紅綠燈太多,老堵車。就比如我們都開跑車,油(主頻)不是問題,也不怕上坡下坡,但就怕堵車。

高效能交易伺服器中介軟體,如tuxedo,都是主張多程序的。實際測試表明,tuxedo效能和併發效率是非常高的。tuxedo是貝爾實驗室的,與unix同宗,應該是對unix理解最為深刻的,他們的意見應該具有很大的參考意義。

1. 程序的優點

2. 程序的缺點

1. 執行緒的優點

2. 執行緒的缺點

1. 多程序優點

2. 多程序缺點

1. 多執行緒的優點

2. 多執行緒缺點

在開發中,最好是多程序和多執行緒結合,即根據實際的需要,每個cpu開啟乙個子程序,這個子程序開啟多執行緒可以為若干同型別的資料進行處理。當然你也可以利用多執行緒+多cpu+輪詢方式來解決問題。方法和手段是多樣的,關鍵是自己看起來實現方便有能夠滿足要求,代價也合適。

多執行緒 多程序?

這幾天在思考如何改進原型在多個客戶端的情況下的效能,特地溫習了一下多程序和多執行緒的一些知識。在linux下程序的程序和執行緒在核心看來區別很小,都是乙個可排程單元,都擁有記憶體管理結構等等。但是關鍵的差別是程序的資源都是私有的,而執行緒則是和別人共享的,所以執行緒的上下文切換可能比程序的開銷要小很...

多程序,多執行緒

多工程式設計 通過應用程式利用多個計算機核心達到多工同時執行的 目的,從此來提公升程式執行效率 多程序,多執行緒 程序 程式在計算機中一次執行的過程 程式 靜態的描述,不占有計算機資源 程序 是乙個動態的過程,占有cpu,記憶體等計算機資源 有一定的生命週期 同乙個程式,每次執行都是不同的程序,因為...

多執行緒 多程序

是什麼?能幹什麼?單執行緒情況下,執行效率低。系統的資源沒有得到充分利用。計算密集型 運算量比較大 io密集型 cpu空閒,輸入輸出較多 怎麼幹?爬蟲 io密集型 多執行緒 橫向 所有的程式的執行都在乙個執行緒中,程式啟動時,啟動多執行緒,每個執行緒跑同樣的 縱向 將程式進行拆分,每個執行緒跑特定的...