search

程序和執行緒的區別

程序和執行緒的區別

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

  所處環境:在作業系統中能同時執行多個程序(程式);而在同一個程序(程式)中有多個執行緒同時執行(透過CPU排程,在每個時間片中只有一個執行緒執行)

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

  包含關係:沒有執行緒的程序可以看做是單執行緒的,如果一個程序內有多個執行緒,則執行過程不是一條線的,而是多條線(執行緒)共同完成的;執行緒是程序的一部分,所以執行緒也被稱為輕權程序或者輕量級程序。

程序和執行緒的區別

  程序和執行緒的根本區別是程序是作業系統資源分配的基本單位,而執行緒是處理器任務排程和執行的基本單位。另外區別還有資源開銷、包含關係、記憶體分配、影響關係、執行過程等。

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

  包含關係:如果一個程序內有多個執行緒,則執行過程不是一條線的,而是多條線(執行緒)共同完成的;執行緒是程序的一部分,所以執行緒也被稱為輕權程序或者輕量級程序。

  記憶體分配:同一程序的執行緒共享本程序的地址空間和資源,而程序之間的地址空間和資源是相互獨立的。

  影響關係:一個程序崩潰後,在保護模式下不會對其他程序產生影響,但是一個執行緒崩潰整個程序都死掉。所以多程序要比多執行緒健壯。

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

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

程序和執行緒的區別有什麼

  程序和執行緒的區別:

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

  2、併發性:不僅程序之間可以併發執行,同一個程序的多個執行緒之間也可以併發執行。

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

  程序是具有一定獨立功能的程式、它是系統進行資源分配和排程的一個獨立單位,重點在系統排程和單獨的單位,也就是說程序是可以獨立執行的一段程式。

  執行緒是程序的一個實體,是CPU排程和分派的基本單位,他是比程序更小的能獨立執行的基本單位,執行緒自己基本上不擁有系統資源。在執行時,只是暫用一些計數器、暫存器和棧。


程序執行的區別是什麼

  1、功能不同:程序是計算機中的程式關於某資料集合上的一次執行活動,是系統進行資源分配和排程的基本單位,是作業系統結構的基礎。執行緒是作業系統能夠進行運算排程的最小單位。它被包含在程序之中,是程序中的實際運作單位。   2、工作原理不同:早期面向程序設計的計算機結構中,程序是程式的基本執行實體;在當代面向執 ...

程序執行區別

  1、程序間是獨立的,這表現在記憶體空間,上下文環境,無法突破程序邊界存取其他程序內的儲存空間;   2、執行緒由於處於程序空間內,所以同一程序所產生的執行緒共享同一記憶體空間,同一程序中的兩段程式碼不能夠同時執行,除非引入執行緒,執行緒是屬於程序的,當程序退出時該程序所產生的執行緒都會被強制退出並清除; ...

linux程序執行區別

  很多朋友都想知道linux程序與執行緒的區別?下面就一起來了解一下吧!   linux程序與執行緒的區別   程序是在某個資料集合上具有獨立功能的一次執行活動,也是系統進行資源分配和排程的一個獨立單位。執行緒在程序方面屬於程序的實體,是CPU排程和分配的基本單位,基本上執行緒自己沒有擁有任何的系統資源,只 ...

四核四執行四核八執行區別

  四核四執行緒和四核八執行緒的區別:四核四執行緒任務管理器會顯示出4張CPU圖表,而四核八執行緒任務管理器會顯示出8張CPU表。四核四執行緒相當於四隻手做四件不同的事情,而四核八執行緒就相當於四隻手能同時做八件事情。   執行緒(英文:thread),臺灣地區譯為執行緒(英文:threadofexecuti ...

什麼是執行安全執行不安全

  執行緒安全:程式碼所在的程序中有多個執行緒在同時執行,而這些執行緒可能會同時執行這段程式碼。如果每次執行結果和單執行緒執行的結果是一樣的,而且其他的變數的值也和預期的是一樣的,就是執行緒安全的。 一個類或者程式所提供的介面對於執行緒來說是原子操作或者多個執行緒之間的切換,不會導致該介面的執行結果存在二義性 ...

cpu的核心執行有什麼用

  CPU構成裡包含了核心與執行緒,同類別下核心越多 , 執行緒越多,處理資料的速度就越快。CPU所有的計算、接受和儲存命令、處理資料都由核心執行。各種CPU核心都具有固定的邏輯結構,一級快取、二級快取、執行單元、指令級單元和匯流排介面等邏輯單元都會有科學的佈局。Intel的I3或者I5有雙核四執行緒的CPU ...

執行程序區別

  根本區別:程序是資源分配最小單位,執行緒是程式執行的最小單位。 計算機在執行程式時,會為程式建立相應的程序,進行資源分配時,是以程序為單位進行相應的分配。每個程序都有相應的執行緒,在執行程式時,實際上是執行相應的一系列執行緒。   地址空間:程序有自己獨立的地址空間,每啟動一個程序,系統都會為其分配地址空 ...