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

2022-08-31 13:54:10 字數 872 閱讀 5835

程式:**實現了功能,就是程式,是靜態的;

程序:執行中的程式就是程序,是動態的;

執行緒:程序內的乙個執行單元,也是程序內的可排程實體,可以併發執行提高了程序的效率。

(1)乙個執行緒只能屬於乙個程序,而乙個程序可以有多個執行緒,但至少有乙個執行緒。

(2)資源分配給程序,同一程序的所有執行緒共享該程序的所有資源。

(3)處理機分給執行緒,即真正在處理機上執行的是執行緒。

(4)執行緒在執行過程中,需要協作同步。不同程序的執行緒間要利用訊息通訊的辦法實現同步。

(1)排程:執行緒作為排程和分配的基本單位,程序作為擁有資源的基本單位

(2)併發性:不僅程序之間可以併發執行,同乙個程序的多個執行緒之間也可併發執行

(3)擁有資源:程序是擁有資源的乙個獨立單位,執行緒不擁有系統資源,但可以訪問隸屬於程序的資源.

(4) 系統開銷:在建立或撤消程序時,由於系統都要為之分配和**資源,導致系統的開銷明顯大於建立或撤消執行緒時的開銷。但是程序有獨立的位址空間,乙個程序崩潰後,在保護模式下不會對其它程序產生影響,而執行緒只是乙個程序中的不同執行路徑。執行緒有自己的堆疊和區域性變數,但執行緒之間沒有單獨的位址空間,乙個執行緒死掉就等於整個程序死掉,所以多程序的程式要比多執行緒的程式健壯,但在程序切換時,耗費資源較大,效率要差一些 

程式是指令的有序集合,其本身沒有任何執行的含義,是乙個靜態的概念。而程序是程式在處理機上的一次執行過程,它是乙個動態的概念。

程式可以作為一種軟體資料長期存在,而程序是有一定生命期的。程式是永久的,程序是暫時的。

程序更能真實地描述併發,而程式不能;程序是由程式和資料兩部分組成的。

程序具有建立其他程序的功能,而程式沒有。

同一程式同時執行於若干個資料集合上,它將屬於若干個不同的程序。也就是說同一程式可以對應多個程序。

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

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

程序與執行緒之間的區別

程序是併發執行的程式在執行過程中分配和管理資源的基本單位,是乙個動態的概念。每個程序都有自己的位址空間 程序空間 程序空間的大小與處理機位數有關。程序至少有5種基本狀態 初始態,執行態,等待狀態,就緒狀態,終止狀態。在多使用者環境下,乙個伺服器通常需要接受大量的不學定數量使用者的併發請求,而為每乙個...

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

定義 一 程式只是一組指令的有序集合,二 程序是具有一定獨立功能的程式關於某個資料集合上的一次執行活動,是系統進行資源分配和排程的乙個獨立單位 三 執行緒是程序的乙個實體,是cpu排程和分派的基本單位,它是比程序更小的能獨立執行的基本單位.執行緒自己基本上不擁有系統資源,只擁有一點在執行中必不可少的...