為什麼要使用執行緒?與程序相比有哪些好處
阿新 • • 發佈:2019-02-03
1、和程序相比,它是一種非常"節儉"的多工操作方式。在linux系統下,啟動一個新的程序必須分配給它獨立的地址空間,建立眾多的資料表來維護它的程式碼段、堆疊段和資料段,這是一種"昂貴"的多工工作方式。
2、運行於一個程序中的多個執行緒,它們之間使用相同的地址空間,而且執行緒間彼此切換所需時間也遠遠小於程序間切換所需要的時間。據統計,一個程序的開銷大約是一個執行緒開銷的30倍左右。
3、執行緒間方便的通訊機制。對不同程序來說,它們具有獨立的資料空間,要進行資料的傳遞只能通過程序間通訊的方式進行,這種方式不僅費時,而且很不方便。執行緒則不然,由於同一進城下的執行緒之間貢獻資料空間,所以一個執行緒的資料可以直接為其他執行緒所用,這不僅快捷,而且方便。
除以上優點外,多執行緒程式作為一種多工、併發的工作方式,還有如下優點:
1、使多CPU系統更加有效。作業系統會保證當執行緒數不大於CPU數目時,不同的執行緒運行於不同的CPU上。
2、改善程式結構。一個既長又複雜的程序可以考慮分為多個執行緒,成為幾個獨立或半獨立的執行部分,這樣的程式才會利於理解和修改。
2、運行於一個程序中的多個執行緒,它們之間使用相同的地址空間,而且執行緒間彼此切換所需時間也遠遠小於程序間切換所需要的時間。據統計,一個程序的開銷大約是一個執行緒開銷的30倍左右。
3、執行緒間方便的通訊機制。對不同程序來說,它們具有獨立的資料空間,要進行資料的傳遞只能通過程序間通訊的方式進行,這種方式不僅費時,而且很不方便。執行緒則不然,由於同一進城下的執行緒之間貢獻資料空間,所以一個執行緒的資料可以直接為其他執行緒所用,這不僅快捷,而且方便。
除以上優點外,多執行緒程式作為一種多工、併發的工作方式,還有如下優點:
1、使多CPU系統更加有效。作業系統會保證當執行緒數不大於CPU數目時,不同的執行緒運行於不同的CPU上。
2、改善程式結構。一個既長又複雜的程序可以考慮分為多個執行緒,成為幾個獨立或半獨立的執行部分,這樣的程式才會利於理解和修改。