執行緒和程序的區別

2021-10-11 01:25:14 字數 483 閱讀 3318

做個簡單的比喻:程序=火車,執行緒=車廂

執行緒在程序下行進(單純的車廂無法執行)乙個程序可以包含多個執行緒(一輛火車可以有多個車廂)

不同程序間資料很難共享(一輛火車上的乘客很難換到另外一輛火車,比如站點換乘)同一程序下不同執行緒間資料很易共享(a車廂換到b車廂很容易)

程序要比執行緒消耗更多的計算機資源(採用多列火車相比多個車廂更耗資源)

程序間不會相互影響,乙個執行緒掛掉將導致整個程序掛掉(一列火車不會影響到另外一列火車,但是如果一列火車上中間的一節車廂著火了,將影響到所有車廂)

程序可以拓展到多機,程序最多適合多核(不同火車可以開在多個軌道上,同一火車的車廂不能在行進的不同的軌道上)

程序使用的記憶體位址可以上鎖,即乙個執行緒使用某些共享記憶體時,其他執行緒必須等它結束,才能使用這一塊記憶體。(比如火車上的洗手間)

-"互斥鎖"程序使用的記憶體位址可以限定使用量(比如火車上的餐廳,最多隻允許多少人進入,如果滿了需要在門口等,等有人出來了才能進去)-「訊號量」

執行緒和程序的區別

易於排程。執行緒切換比程序切換要快。虛擬記憶體空間,io裝置等 開銷小。建立執行緒比建立進行要快,所需開銷小。進展用少量資源,如棧和暫存器。提高併發性。程序可以建立多個執行緒來執行統一程式的不同任務。有利於充分發揮多處理器的功能。通過建立多執行緒的程序,每個執行緒在乙個處理器上執行,從而實現了應用程...

執行緒和程序的區別

這個問題我查了不下4次,每次都是突然想到查一下,當時明白,完了又會混淆 首先我們知道 程序 執行緒 執行緒 在乙個程式裡面的多個任務,比如賣票系統,他有退票和賣票的功能,我們就可以給他稱之為執行緒。程序 我們開啟任務管理器可以看到的是我們在系統上執行的程式稱之為執行緒 總之,乙個程式必須有乙個程序,...

執行緒和程序的區別

1.計算機的核心是cpu,它承擔了所有的計算任務。它就像一座工廠,時刻在執行。2.假定工廠的電力有限,一次只能供給乙個車間使用。也就是說,乙個車間開工的時候,其他車間都必須停工。背後的含義就是,單個cpu一次只能執行乙個任務。3.程序就好比工廠的車間,它代表cpu所能處理的單個任務。任一時刻,cpu...