linux 下 程序和執行緒的區別

時間 2023-04-30 08:00:09

1樓:老男孩教育

聯絡:

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

相對程序而言,執行緒是一個更加接近於執行體的概念,它可以與同程序中的其他執行緒共享資料,但擁有自己的棧空間,擁有獨立的執行序列。

區別:

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

但對於一些要求同時進行並且又要共享某些變數的併發操作,只能用執行緒,不能用程序。

簡而言之,一個程式至少有一個程序,一個程序至少有一個執行緒。

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

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

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

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

linux中程序和執行緒的對比與區別

2樓:碼農架構

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

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

3樓:小風愛廚房

1、功能不同。

程序是計算機中的程式關於某資料集合上的一次執行活動,是系統進行資源分配和排程的基本單位,是作業系統結構的基礎。

執行緒是作業系統能夠進行運算排程的最小單位。它被包含在程序之中,是程序中的實際運作單位。

2、工作原理不同。

在早期面向程序設計的計算機結構中,程序是程式的基本執行實體;在當代面向執行緒設計的計算機結構中,程序是執行緒的容器。程式是指令、資料及其組織形式的描述,程序是程式的實體。

執行緒是獨立排程和分派的基本單位。執行緒可以為作業系統核心排程的核心執行緒,如win32執行緒;由使用者程序自行排程的使用者執行緒,如linux平臺的posix thread;或者由核心與使用者程序,如windows 7的執行緒,進行混合排程。

3、作用不同。

程序是作業系統中最基本、重要的概念。是多道程式系統出現後,為了刻畫系統內部出現的動態情況,描述系統內部各道程式的活動規律引進的一個概念,所有多道程式設計作業系統都建立在程序的基礎上。

通常在一個程序中可以包含若干個執行緒,它們可以利用程序所擁有的資源。在引入執行緒的作業系統中,通常都是把程序作為分配資源的基本單位,而把執行緒作為獨立執行和獨立排程的基本單位。

程序的特徵:

1、動態性:程序的實質是程式在多道程式系統中的一次執行過程,程序是動態產生,動態消亡的。

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

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

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

5、結構特徵:程序由程式、資料和程序控制塊三部分組成。

多個不同的程序可以包含相同的程式:一個程式在不同的資料集裡就構成不同的程序,能得到不同的結果;但是執行過程中,程式不能發生改變。

程序和執行緒的區別

程序和執行緒的區別

程序和執行緒的區別

4樓:小葉子愛教育

程序和執行緒的區別如下:

1、根本區別。

程序是作業系統資源分配的基本單位,而執行緒是任務排程和執行的基本單位。

2、開銷方面。

程序之間切換開銷大,每個程序都有獨立的**和資料空間程式上下文;執行緒之間切換開銷小,執行緒可以看做輕量級的程序,同一類執行緒共享**和資料空間,每個執行緒都有自己獨立的執行棧和程式計數器pc。

3、所處環境。

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

4、記憶體分配。

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

5、包含關係。

執行緒是程序的一部分,所以執行緒也被稱為輕權程序或者輕量級程序。

程序和執行緒的區別

程序和執行緒的區別

程序與執行緒的區別

5樓:教育手冊

程序與執行緒的區別有開銷不同、所處環境不同、記憶體分配不同等。

每個程序都有獨立的**和資料空間(程式上下文),程式之間的切換會有較大的開銷。執行緒可以看做輕量級的程序,每個執行緒都有自己獨立的執行棧和程式計數器(pc),執行緒之間切換的開銷小。

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

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

程序與執行緒的關係

程序(process)和執行緒(thread)是作業系統的基本概念,但是它們比較抽象,不容易掌握。計算機的核心是cpu,它承擔了所有的計算任務。它就像一座工廠,時刻在執行。

假定工廠的電力有限,一次只能供給一個車間使用。也就是說,一個車間開工的時候,其他車間都必須停工。背後的含義就是,單個cpu一次只能執行一個任務。

程序就好比工廠的車間,它代表cpu所能處理的單個任務。任一時刻,cpu總是執行一個程序,其他程序處於非執行狀態。一個車間裡,可以有很多工人。

他們協同完成一個任務,執行緒就好比車間裡的工人。一個程序可以包括多個執行緒,車間的空間是工人們共享的,比如許多房間是每個工人都可以進出的。這象徵一個程序的記憶體空間是共享的,每個執行緒都可以使用這些共享記憶體。

Linux程式設計和程序 執行緒,linux 下 程序和執行緒的區別

給你舉個例子 比方電腦裡你安裝的qq,暴風,迅雷他們都可以單獨獨立執行,那麼我們就可以說qq是一個程序,暴風也是一個程序,迅雷更是一個程序 而要說到什麼是執行緒,執行緒是執行在程序裡裡的程式 舉例qq 執行緒 我們能同時用qq軟體進行聊天,聽 為什麼呢,這就是執行緒的優點所在,單獨執行但又不互相干擾...

程序和執行緒的區別

程序是一個具有獨立功能的程式關於某個資料集合的一次執行活動。它可以申請和擁有系統資源,是一個動態的概念,是一個活動的實體。它不只是程式的 還包括當前的活動,通過程式計數器的值和處理暫存器的內容來表示。程序是一個 執行中的程式 程式是一個沒有生命的實體,只有處理器賦予程式生命時,它才能成為一個活動的實...

程序和執行緒是什麼,有什麼區別呢,程序和執行緒有什麼區別

啃芝士 程序和執行緒是什麼關係?有什麼區別?程序和執行緒有什麼區別? xxp閃電的力量 1 性質不同 程序 process 是計算機中的程式關於某資料集合上的一次執行活動,是系統進行資源分配和排程的基本單位,是作業系統結構的基礎。執行緒 英語 thread 是作業系統能夠進行運算排程的最小單位。它被...