程序與執行緒的區別是什么,程序與執行緒的區別是什麼?

時間 2022-10-10 13:40:04

1樓:匿名使用者

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

執行緒是程序的乙個實體,是cpu排程和分派的基本單位,它是比程序更小的能獨立執行的基本單位.執行緒自己基本上不擁有系統資源,只擁有一點在執行中必不可少的資源(如程式計數器,一組暫存器和棧),但是它可與同屬乙個程序的其他的執行緒共享程序所擁有的全部資源.

乙個執行緒可以建立和撤銷另乙個執行緒;同乙個程序中的多個執行緒之間可以併發執行

2、程序和執行緒的區別在於:

簡而言之,乙個程式至少有乙個程序,乙個程序至少有乙個執行緒.

執行緒的劃分尺度小於程序,使得多執行緒程式的併發性高。

另外,程序在執行過程中擁有獨立的記憶體單元,而多個執行緒共享記憶體,從而極大地提高了程式的執行效率。

執行緒在執行過程中與程序還是有區別的。每個獨立的執行緒有乙個程式執行的入口、順序執行序列和程式的出口。但是執行緒不能夠獨立執行,必須依存在應用程式中,由應用程式提供多個執行緒執行控制。

從邏輯角度來看,多執行緒的意義在於乙個應用程式中,有多個執行部分可以同時執行。但作業系統並沒有將多個執行緒看做多個獨立的應用,來實現程序的排程和管理以及資源分配。這就是程序和執行緒的重要區別。

2樓:打小最聽話

1. 程序是作業系統資源分配的單位,執行緒是作業系統執行的單位。

2. 程序間是獨立的,這表現在記憶體空間,上下文環境;執行緒執行在程序空間內。

3. 同一程序中的兩段**不能夠同時執行,除非引入執行緒。執行緒是屬於程序的,當程序退出時該程序所產生的執行緒都會被強制退出並清除。

什麼是程序(process)和執行緒(thread)?區別是什麼?

3樓:用心看世界的我

程序和執行緒都是由作業系統所體會的程式執行的基本單元,系統利用該基本單元實現系統對應用的併發性。程序和執行緒的區別在於:

簡而言之,乙個程式至少有乙個程序,乙個程序至少有乙個執行緒.

執行緒的劃分尺度小於程序,使得多執行緒程式的併發性高。

另外,程序在執行過程中擁有獨立的記憶體單元,而多個執行緒共享記憶體,從而極大地提高了程式的執行效率。

執行緒在執行過程中與程序還是有區別的。每個獨立的執行緒有乙個程式執行的入口、順序執行序列和程式的出口。

但是執行緒不能夠獨立執行,必須依存在應用程式中,由應用程式提供多個執行緒執行控制。

從邏輯角度來看,多執行緒的意義在於乙個應用程式中,有多個執行部分可以同時執行。

但作業系統並沒有將多個執行緒看做多個獨立的應用,來實現程序的排程和管理以及資源分配。

這就是程序和執行緒的重要區別。

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

執行緒是程序的乙個實體,是cpu排程和分派的基本單位,它是比程序更小的能獨立執行的基本單位.執行緒

自己基本上不擁有系統資源,只擁有一點在執行中必不可少的資源(如程式計數器,一組暫存器和棧),但是它可與同屬乙個程序的其他的執行緒共享程序所擁有的全部資源.

乙個執行緒可以建立和撤銷另乙個執行緒;同乙個程序中的多個執行緒之間可以併發執行.

4樓:碼農架構

[作業系統]程序和執行緒的區別

5樓:歐夕錯丁

通俗地講,程序就是你執行的程式,一般來說,乙個程式就是乙個程序;執行緒是程序產生的可以併發執行的任務,直觀上你是看不到它的。

j**a 中線程與程序的區別是什麼?

6樓:匿名使用者

執行緒是程序的一部分,程序是由執行緒所組成的

7樓:匿名使用者

程序 可以包括多個執行緒~~~~

簡述執行緒與程序的區別及優缺點?

8樓:小輝學長

程序優點:每個程序互相獨立,不影響主程式的穩定性,子程序崩潰沒關係;

缺點:需要跨程序邊界,如果有大資料量傳送,就不太好,適合小資料量傳送、密集運算 多程序排程開銷比較大。

執行緒優點:無需跨程序邊界;

區別:

1、作業系統資源管理方式區別

程序有獨立的位址空間,乙個程序崩潰後,在保護模式下不會對其它程序產生影響,而執行緒只是乙個程序中的不同執行路徑。

2、所處環境區別

在作業系統中能同時執行多個程序(程式);而在同乙個程序(程式)中有多個執行緒同時執行(通過cpu排程,在每個時間片中只有乙個執行緒執行)

3、記憶體分配方面區別

系統在執行的時候會為每個程序分配不同的記憶體空間;而對執行緒而言,除了cpu外,系統不會為執行緒分配記憶體(執行緒所使用的資源來自其所屬程序的資源),執行緒組之間只能共享資源。

9樓:

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

1.程序有自己獨立的位址空間;而執行緒共享程序的位址空間;

2.乙個程式至少有乙個程序,乙個程序至少有乙個執行緒;

3.執行緒是處理器排程的基本單位,但程序不是;

4.二者均可併發執行

多執行緒比多程序成本低,但效能更低。

在unix環境,多程序排程開銷比多執行緒排程開銷,沒有顯著區別,就是說,unix程序排程效率是很高的。記憶體消耗方面,二者只差全域性資料區,現在記憶體都很便宜,伺服器記憶體動輒若干g,根本不是問題。

多程序是立體交通系統,雖然造價高,上坡下坡多耗點油,但是不堵車。

多執行緒是平面交通系統,造價低,但紅綠燈太多,老堵車。

程序和執行緒的主要區別是什麼?

10樓:匿名使用者

好吧,承認我懶了- - ,我給你拷一段。

====

程序和執行緒都是由作業系統所體會的程式執行的基本單元,系統利用該基本單元實現系統對應用的併發性。程序和執行緒的區別在於:

簡而言之,乙個程式至少有乙個程序,乙個程序至少有乙個執行緒.

執行緒的劃分尺度小於程序,使得多執行緒程式的併發性高。

另外,程序在執行過程中擁有獨立的記憶體單元,而多個執行緒共享記憶體,從而極大地提高了程式的執行效率。

執行緒在執行過程中與程序還是有區別的。每個獨立的執行緒有乙個程式執行的入口、順序執行序列和程式的出口。但是執行緒不能夠獨立執行,必須依存在應用程式中,由應用程式提供多個執行緒執行控制。

從邏輯角度來看,多執行緒的意義在於乙個應用程式中,有多個執行部分可以同時執行。但作業系統並沒有將多個執行緒看做多個獨立的應用,來實現程序的排程和管理以及資源分配。這就是程序和執行緒的重要區別。

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

執行緒是程序的乙個實體,是cpu排程和分派的基本單位,它是比程序更小的能獨立執行的基本單位.執行緒自己基本上不擁有系統資源,只擁有一點在執行中必不可少的資源(如程式計數器,一組暫存器和棧),但是它可與同屬乙個程序的其他的執行緒共享程序所擁有的全部資源.

乙個執行緒可以建立和撤銷另乙個執行緒;同乙個程序中的多個執行緒之間可以併發執行.

程序和執行緒的主要差別在於它們是不同的作業系統資源管理方式。程序有獨立的位址空間,乙個程序崩潰後,在保護模式下不會對其它程序產生影響,而執行緒只是乙個程序中的不同執行路徑。執行緒有自己的堆疊和區域性變數,但執行緒之間沒有單獨的位址空間,乙個執行緒死掉就等於整個程序死掉,所以多程序的程式要比多執行緒的程式健壯,但在程序切換時,耗費資源較大,效率要差一些。

但對於一些要求同時進行並且又要共享某些變數的併發操作,只能用執行緒,不能用程序。如果有興趣深入的話,我建議你們看看《現代作業系統》或者《作業系統的設計與實現》。對就個問題說得比較清楚。

11樓:碼農架構

[作業系統]程序和執行緒的區別

12樓:匿名使用者

在有程序和執行緒的系統中,程序是系統資源分配的獨立單位,而執行緒是可排程執行的獨立單位.

13樓:匿名使用者

執行緒具有許多傳統程序所具有的特徵,故又稱為輕型程序或程序元;而把傳統的程序稱為重型程序,它相當於只有乙個執行緒的任務。在引入了執行緒的os中,通常乙個程序都有若干個執行緒,至少也需要有乙個執行緒。下面從排程、併發性、系統開銷、擁有資源等方面,來比較執行緒與程序。

(1)排程。在傳統的作業系統中,擁有資源的基本單位和獨立排程、分派的基本單位都是程序。而在引入執行緒的os中,則把執行緒作為排程和分派的基本單位,而把程序作為資源擁有的基本單位,使傳統程序的兩個屬性分開,執行緒便能輕裝執行,從而提高系統的併發程度。

在同一程序中,執行緒的切換不會引起程序切換,在由乙個程序中的執行緒切換到另一程序中的執行緒時,將會引起程序切換。

〔2)併發性。在引入執行緒的作業系統中,不僅程序之間可以併發執行,而且在乙個程序中的多個執行緒之間,亦可併發執行,因而使os具有更好的併發性,從而能更有效地使用系統資源和提高系統吞吐量。

(3)擁有資源。不論是傳統的作業系統,還是設有執行緒的作業系統,程序都是擁有資源的乙個獨立單位,它可以擁有自己的資源。一般的說,執行緒不擁有系統資源(也有一點必不可少的資源),但它可以訪問其隸屬程序的資源。

亦即,乙個程序的**段、資料段以及系統資源,如已開啟的檔案、i/o裝置等,可供同一程序的其他所有執行緒共享。

(4)系統開銷。在建立或撤消程序時,系統都要為之分配或**資源,如記憶體空間、i/o裝置等。因此,os所付出的開銷將顯著地大於在建立或撤消執行緒時的開銷。

類似地,在進行程序切換時,涉及到整個當前程序cpu環境的儲存以及新被排程執行的程序cpu環境的設定。而執行緒切換只需儲存和設定少量暫存器的內容,並不涉及儲存器管理方面的操作。可見,程序切換的開銷也遠大於執行緒切換的開銷。

此外,由於同一程序中的多個執行緒具有相同的位址空間,使兩者之間的同步和通訊的實現,也變得比較容易,在有的系統中,執行緒的切換、同步和通訊都無須os核心干預。

14樓:匿名使用者

從概念上:

程序:乙個程式對乙個資料集的動態執行過程,是分配資源的基本單位。

執行緒:乙個程序內的基本排程單位。

執行緒的劃分尺度小於程序,乙個程序包含乙個或者更多的執行緒。

從執行過程中來看:

程序:擁有獨立的記憶體單元,而多個執行緒共享記憶體,從而提高了應用程式的執行效率。

執行緒:每乙個獨立的執行緒,都有乙個程式執行的入口、順序執行序列、和程式的出口。但是執行緒不能夠獨立的執行,必須依存在應用程式中,由應用程式提供多個執行緒執行控制。

從邏輯角度來看:(重要區別)

多執行緒的意義在於乙個應用程式中,有多個執行部分可以同時執行。但是,作業系統並沒有將多個執行緒看做多個獨立的應用,來實現程序的排程和管理及資源分配。

執行緒與程序的區別及優缺點分別是什麼?

15樓:

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

1.程序有自己獨立的位址空間;而執行緒共享程序的位址空間;

2.乙個程式至少有乙個程序,乙個程序至少有乙個執行緒;

3.執行緒是處理器排程的基本單位,但程序不是;

4.二者均可併發執行

多執行緒比多程序成本低,但效能更低。

在unix環境,多程序排程開銷比多執行緒排程開銷,沒有顯著區別,就是說,unix程序排程效率是很高的。記憶體消耗方面,二者只差全域性資料區,現在記憶體都很便宜,伺服器記憶體動輒若干g,根本不是問題。

多程序是立體交通系統,雖然造價高,上坡下坡多耗點油,但是不堵車。

多執行緒是平面交通系統,造價低,但紅綠燈太多,老堵車。

任務與程序有什麼區別

ry似錦 程序就是你在工作管理員 程序 裡面看到的一個個程式,一個程序可以包含一個或者好幾個windows系統的服務.如svchost.exe程序,有的svchost.exe只包含一個服務,有的則包含很多.服務依靠程序的進行來啟動。服務相當於支援系統執行的一些必要程式,程式裡執行的則是 當前使用的軟...

電飯煲上的精華煮與柴火飯的區別是什么

各大品牌打柴火飯的概念都炒錯了,這是在誤導城市裡的80 90後嗎?這可是傳統老祖宗留下來的文化啊!真正的柴火飯必須要弧形鑄鐵鍋,這樣才有鍋巴才會有濃厚純正的公尺香味 還要配上杉頭蓋 這樣飯裡才有木頭的香味 是先用柴火大火燒,讓飯快速膨脹,均勻吸水,水乾後用小火燜,燜的第乙個目的是為了把公尺香味比出來...

程式設計有前途么?為什么老是說程序員是電腦邊的農民?到底如何發展才是可持續性的

我也是程式設計師.做程式設計師是件很無聊的事,本以為可以寫自己喜歡的程式,沒入行的時候總以為寫程式是件多麼神秘多麼吸引人的工作.工作後,整天就是寫 那些 早已經寫了不下千遍.一點挑戰都沒有.而那些設計軟體的薪水很高,我們寫 的卻很低.不過沒關係,慢慢來,等有了足夠的經驗,我們就不會是整天寫 的程式設...