程序與執行緒的區別在哪裡?

General 更新 2022年9月13日

程序與執行緒的區別?程序與執行緒的區別

方法

程序:指在系統中能獨立執行並作為資源分配的基本單位,它是由一組機器指令、資料和堆疊等組成的,是一個能獨立執行的活動實體。

程序一般有三個狀態:就緒狀態、執行狀態和等待狀態【或稱阻塞狀態】;程序只能由父程序建立,系統中所有的程序形成一種程序樹的層次體系;掛起命令可由程序自己和其他程序發出,但是解除掛起命令只能由其他程序發出。

由程式段、相關的資料段和PCB三部分構成了程序實體(又稱程序印像),一般,我們把程序實體就簡稱為程序。

程序的特徵:

1.動態性:程序的實質是程式的一次執行過程,程序是動態產生,動態消亡的。

2.併發性:任何程序都可以同其他程序一起併發執行。

3.獨立性:程序是一個能獨立執行的基本單位,同時也是系統分配資源和排程的獨立單位。

4.非同步性:由於程序間的相互制約,使程序具有執行的間斷性,即程序按各自獨立的、不可預知的速度向前推進。

執行緒:執行緒是程序中的一個實體,作為系統排程和分派的基本單位。Linux下的執行緒看作輕量級程序。

執行緒的性質:

1.執行緒是程序內的一個相對獨立的可執行的單元。若把程序稱為任務的話,那麼執行緒則是應用中的一個子任務的執行。

2.由於執行緒是被排程的基本單元,而程序不是排程單元。所以,每個程序在建立時,至少需要同時為該程序建立一個執行緒。即程序中至少要有一個或一個以上的執行緒,否則該程序無法被排程執行。

3.程序是被分給並擁有資源的基本單元。同一程序內的多個執行緒共享該程序的資源,但執行緒並不擁有資源,只是使用他們。

4.執行緒是作業系統中基本排程單元,因此執行緒中應包含有排程所需要的必要資訊,且在生命週期中有狀態的變化。

5.由於共享資源【包括資料和檔案】,所以執行緒間需要通訊和同步機制,且需要時執行緒可以建立其他執行緒,但執行緒間不存在父子關係。

相關問題答案
法理依據與事實依據區別在哪裡? ?
旅行和旅遊的區別在哪?
事業與工作的區別在哪?
玻尿酸與童顏針的區別 打哪個更好 ?
暖氣片好壞的區別在哪?
面膜好壞的區別在哪?
紫菜和海苔是一樣的嗎 如果不一樣 區別在哪裡 ?
多肽與蛋白質的區別?
芬嗎通與克齡蒙的區別?
滿意度與滿意率的區別?