執行緒與程序的區別

2022-10-11 15:54:10 字數 635 閱讀 3607

前面兩篇文章已經介紹了執行緒與程序,我們知道電腦程式是可執行的二進位制程式,它們只有載入到記憶體中,被作業系統呼叫才開始它們的生命週期,程序(有時被稱為重量級程序)是程式的一次執行。每個程序都有自己的位址空間、記憶體、資料棧及其它記錄其執行軌跡的輔助資料,正是因為獨立,程序間只能使用程序間通訊,無法直接使用共享資訊;執行緒是程序中執行運算的最小單位,是程序中的乙個實體,不直接擁有系統資源,乙個程序可以建立多個執行緒,乙個執行緒也可以建立多個執行緒, 同一程序間的執行緒可以併發執行並共享資料。下面我們來對比一下對於python來說,執行緒與程序之間的聯絡與區別

單位:執行緒是資源分配的單位,程序是作業系統排程的單位

資源開銷:程序由於需要系統分配資源,相對於執行緒開銷較大

通訊:同一程序間的不同執行緒可以直接共享程序的資源,程序間只能使用程序間通訊(佇列、manager等)

資源訪問:同一程序的多個執行緒可以訪問程序的資源,程序間預設無法訪問資源,只能通過程序間通訊

由於python執行緒的gil鎖的存在,導致python執行緒只能執行在乙個cpu上,因此python的執行緒適用於io密集型程式,由於檔案讀寫需要時間,cpu可以在多個執行緒間快速切換

與此相比,程序則是可以執行在多個cpu上,加快了效率,適用於計算密集型程式,即需要進行邏輯處理、運算的程式。

執行緒與程序的區別

執行緒與程序的區別

原文 程序 process 和執行緒 thread 是作業系統的基本概念,但是它們比較抽象,不容易掌握。最近,我讀到一篇材料,發現有乙個很好的模擬,可以把它們解釋地清晰易懂 1 計算機的核心是cpu,它承擔了所有的計算任務。它就像一座工廠,時刻在執行。2 假定工廠的電力有限,一次只能供給乙個車間使用...

程序與執行緒的區別

首先來一句概括的總論 程序和執行緒都是乙個時間段的描述,是cpu工作時間段的描述。乙個最最基礎的事實 cpu太快,太快,太快了,暫存器僅僅能夠追的上他的腳步,ram和別的掛在各匯流排上的裝置完全是望其項背。那當多個任務要執行的時候怎麼辦呢?輪流著來?或者誰優先順序高誰來?不管怎麼樣的策略,一句話就是...

程序與執行緒的區別

首先來一句概括的總論 程序和執行緒都是乙個時間段的描述,是cpu工作時間段的描述。下面細說背景 cpu ram 各種資源 比如顯示卡,光碟機,鍵盤,gps,等等外設 構成我們的電腦,但是電腦的執行,實際就是cpu和相關暫存器以及ram之間的事情。乙個最最基礎的事實 cpu太快,太快,太快了,暫存器僅...