程式 程序 執行緒區別與聯絡。

2022-02-02 21:23:39 字數 969 閱讀 9619

定義:

一 程式只是一組指令的有序集合,

二 程序是具有一定獨立功能的程式關於某個資料集合上的一次執行活動,是系統進行資源分配和排程的乙個獨立單位;

三 執行緒是程序的乙個實體,是cpu排程和分派的基本單位,它是比程序更小的能獨立執行的基本單位.執行緒自己基本上不擁有系統資源,只擁有一點在執行中必不可少的資源(如程式計數器,一組暫存器和棧),乙個執行緒可以建立和撤銷另乙個執行緒;

一 程序與執行緒區別與聯絡

(1) 劃分尺度:執行緒更小,所以多執行緒程式併發性更高;

(2) 資源分配:程序是資源分配的基本單位,同一程序內多個執行緒共享其資源;

(3) 位址空間:程序擁有獨立的位址空間,同一程序內多個執行緒共享其資源;

(4) 處理器排程:執行緒是處理器排程的基本單位;

(5) 執行:每個執行緒都有乙個程式執行的入口,順序執行序列和程式的出口,但執行緒不能單獨執行,必須組成程序,乙個程序至少有乙個主線程。簡而言之,乙個程式至少有乙個程序,乙個程序至少有乙個執行緒.

二 程序和程式區別和聯絡

(1)程式只是一組指令的有序集合,它本身沒有任何執行的含義,它只是乙個靜態的實體。而程序則不同,它是程式在某個資料集上的執行。程序是乙個動態的實體,它有自己的生命週期。反映了乙個程式在一定的資料集上執行的全部動態過程。

(2)程序和程式並不是一一對應的,乙個程式執行在不同的資料集上就成為不同的程序,可以用程序控制塊來唯一地標識每個程序。而這一點正是程式無法做到的,由於程式沒有和資料產生直接的聯絡,既使是執行不同的資料的程式,他們的指令的集合依然是一樣的,所以無法唯一地標識出這些執行於不同資料集上的程式。一般來說,乙個程序肯定有乙個與之對應的程式,而且只有乙個。而乙個程式有可能沒有與之對應的程序(因為它沒有執行),也有可能有多個程序與之對應(執行在幾個不同的資料集上)。

(3)程序還具有併發性和交往性,這也與程式的封閉性不同。

程序與執行緒的區別聯絡

自 對於執行緒,程序的概念一直都是比較模糊,最近整理了一下。總結起來就是,執行緒是程序的一部分,程序是程式的一部分。這個說法不準確,但是可以指出期間的差別 程序是具有一定獨立功能的程式關於某個資料集合上的一次執行活動,程序是系統進行資源分配和排程的乙個獨立單位.執行緒是程序的乙個實體,是cpu排程和...

程式 程序 執行緒之間的區別與聯絡

程式 實現了功能,就是程式,是靜態的 程序 執行中的程式就是程序,是動態的 執行緒 程序內的乙個執行單元,也是程序內的可排程實體,可以併發執行提高了程序的效率。1 乙個執行緒只能屬於乙個程序,而乙個程序可以有多個執行緒,但至少有乙個執行緒。2 資源分配給程序,同一程序的所有執行緒共享該程序的所有資源...

程序與執行緒的區別與聯絡

程序 資源分配的基本單位,也是排程執行的基本單位 執行緒 程序中執行執行的最小單位,執行緒是作業系統可識別的最小執行和排程單位 兩者的關係 1.乙個執行緒只能屬於乙個程序,而乙個程序可以有多個執行緒 2.程序是資源分配的基本單位。同一程序中的所有執行緒共享該程序的資源包括 段 和常量 資料段 全域性...