執行緒和程序有哪些區別?
1樓:網友
程序:系統負責**。
執行緒:程序負責**,但若程序被殺,執行緒也不存在了。
所有執行緒共享程序內的記憶體位址空間,有自已專屬的棧空間,如qq中收資訊和發資訊可能就是不同的執行緒,有各自的緩衝區。
程序間關係相互獨立,如qq和msn,各不相關。
執行緒不要系統來維護,所以在時間切換上更為快速。
2樓:網友
我來,簡單的說,系統內部是以執行緒為單位進行cpu時間片得分配的,所以作業系統實際執行的最小單位是執行緒,程序是資源分配的最小單位,執行緒的記憶體等資源需從程序處得到。
執行緒和程序有什麼區別?
3樓:世冬梅靳以
程序和執行緒是兩個相對的概念,通常來說,乙個程序可以定義程式的乙個例項(instan
ce)。在win32中,程序並不執行什麼,它只是佔據應用程式所使用的位址空間。為了讓。
程序完成一定的工作,程序必須至少佔有乙個執行緒,正是這個執行緒負責包含程序位址空。
間中的**。實際上,乙個程序可以包含幾個執行緒,它們可以同時執行程序位址空間中。
的**。為了做到這一點,每個執行緒有自己的一組cpu暫存器和堆疊。每個程序中至少有。
乙個執行緒在執行其位址空間中的**。如果沒有執行緒執行程序位址空間中的**,程序。
也就沒有繼續存在的理由,系統將自動清除程序及其位址空間。
執行緒和程序有什麼區別
4樓:懂視生活
程序與執行緒的區別?程序與執行緒的區別。
方法
程序:指在系統中能獨立執行並作為資源分配的基本單位,它是由一組機器指令、資料好態和堆疊等組成的,是乙個能獨立執行的活動實體。
程序一般有三個狀態:就緒狀態、執行狀態和等待狀態【或稱阻塞狀態】;程序只能由父程序建立,系統中所有的程序形成一種程序樹的層次體系;掛起命令可由程序自己和其他程序發出,但是解除掛起命令只能由其他程序發出。
由程式段、相關的資料段和pcb三部分構成了程序實體(又稱程序印像),一般,我們把程序實體就簡稱為程序。
程序的特徵:
1.動態性:程序的實質是程式的一次執行過程,程序是動態產生,動態消亡的。
2.併發性:任何程序都可以同其他程序一起併發執行。
3.獨立性:程序是乙個能獨立執行的基本單位,同時也是系統分配資源和排程的獨立單位。
4.非同步性:由於程序間的相互制約,使程序具有執行的間斷性,即程序按各自獨立的、不可預知的速度向前推進。
執行緒:執行緒是程序中的乙個實體,作為系統排程和分派的基本單位。linux下的執行緒看作輕量級程序。
執行緒的性質:
1.執行緒是程序內的乙個相對獨立的可執行的單元。若把程序稱為任務的話,那麼執行緒則是應用中的乙個子任務的執行。
2.由於執行緒是被排程的基本友纖源單元,而程序不是排程單元。所以,每個程序在建立時,至少需要同時為該豎拍程序建立乙個執行緒。
即程序中至少要有乙個或乙個以上的執行緒,否則該程序無法被排程執行。
3.程序是被分給並擁有資源的基本單元。同一程序內的多個執行緒共享該程序的資源,但執行緒並不擁有資源,只是使用他們。
4.執行緒是作業系統中基本排程單元,因此執行緒中應包含有排程所需要的必要資訊,且在生命週期中有狀態的變化。
5.由於共享資源【包括資料和檔案】,所以執行緒間需要通訊和同步機制,且需要時執行緒可以建立其他執行緒,但執行緒間不存在父子關係。
執行緒和程序有什麼區別
5樓:帥媽媽愛帥帥
1、首先是定義。
程序:是執行中一段程式,即一旦程式被載入到記憶體中並準備執行,它就是乙個程序。程序是表示資源分配的的基本概念,又是排程執行的基本單位,是系統中的併發執行的單位。
執行緒:單個程序中執行中每個任務就是乙個執行緒。執行緒是程序中執行運算的最小單位。
2、乙個執行緒只能屬於乙個程序,但是乙個程序可以擁有多個執行緒。多執行緒處理就是允許乙個程序中在同一時刻執行多個任務。
3、執行緒是一種輕量級的程序,與程序相比,執行緒給作業系統帶來側建立、維護、和管理的負擔要輕,意味著執行緒的代價或開銷比較小。
4、執行緒沒有位址空間,執行緒包含在程序的位址空間中。執行緒上下文只包含乙個堆疊、乙個暫存器、乙個優先權,執行緒文字包含在他的程序 的文字片段中,程序擁有的所有資源都屬於執行緒。所有的執行緒共享程序的記憶體和資源。
同一程序中的多個執行緒共享**段(**和常量),資料段(全域性變數和靜態變數),擴充套件段(堆儲存)。但是每個執行緒擁有自己的棧段, 暫存器的內容,棧段又叫執行時段,用來存放所有區域性變數和臨時變數。
5、父和子程序使用程序間通訊機制,同一程序的執行緒通過讀取和寫入資料到程序變數來通訊。
6、程序內的任何執行緒都被看做是同位體,且處於相同的級別。不管是哪個執行緒建立了哪乙個執行緒,程序內的任何執行緒都可以銷燬、掛起、恢復和更改其它執行緒的優先權。執行緒也要對程序施加控制,程序中任何執行緒都可以通過銷燬主執行緒來銷燬程序,銷燬主執行緒將導致該程序的銷燬,對主執行緒的修改可能影響所有的執行緒。
7、子程序不對任何其他子程序施加控制,程序的執行緒可以對同一程序的其它執行緒施加控制。子程序不能對父程序施加控制,程序中所有執行緒都可以對主執行緒施加控制。
相同點:程序和執行緒都有id/暫存器組、狀態和優先權、資訊塊,建立後都可更改自己的屬性,都可與父程序共享資源、都不鞥直接訪問其他無關程序或執行緒的資源。程序和執行緒。
程序和執行緒有什麼區別
6樓:蠻小夜
程序是具有一定獨立功能的程式關於某個資料集合上的一次執行活動,程序是系統進行資源分配和排程的乙個獨立單位。
執行緒是程序的乙個實體,是cpu排程和分派的基本單位,它是比程序更小的能獨立執行的基本單位。執行緒自己基本上不擁有系統資源,只擁有一點在執行中必不可少的資源(如程式計數器,一組暫存器和棧),但是它可與同屬乙個程序的其他的執行緒共享程序所擁有的全部資源。
程序和執行緒的主要差別在於它們是不同的作業系統資源管理方式。程序有獨立的位址空間,乙個程序崩潰後,在保護模式下不會對其它程序產生影響,而執行緒只是乙個程序中的不同執行路徑。執行緒有自己的堆疊和區域性變數,但執行緒之間沒有單獨的位址空間,乙個執行緒死掉就等於整個程序死掉,所以多程序的程式要比多執行緒的程式健壯,但在程序切換時,耗費資源較大,效率要差一些。
但對於一些要求同時進行並且又要共享某些變數的併發操作,只能用執行緒,不能用程序。
1、簡而言之,乙個程式至少有乙個程序,乙個程序至少有乙個執行緒。
2、執行緒的劃分尺度小於程序,使得多執行緒程式的併發性高。
3、 另外,程序在執行過程中擁有獨立的記憶體單元,而多個執行緒共享記憶體,從而極大地提高了程式的執行效率。
4、 執行緒在執行過程中與程序還是有區別的。每個獨立的執行緒有乙個程式執行的入口、順序執行序列和程式的出口。但是執行緒不能夠獨立執行,必須依存在應用程式中,由應用程式提供多個執行緒執行控制。
5、從邏輯角度來看,多執行緒的意義在於乙個應用程式中,有多個執行部分可以同時執行。但作業系統並沒有將多個執行緒看做多個獨立的應用,來實現程序的排程和管理以及資源分配。這就是程序和執行緒的重要區別。
乙個執行緒可以建立和撤銷另乙個執行緒;同乙個程序中的多個執行緒之間可以併發執行。
相對程序而言,執行緒是乙個更加接近於執行體的概念,它可以與同程序中的其他執行緒共享資料,但擁有自己的棧空間,擁有獨立的執行序列。
程序和執行緒有什麼區別?
7樓:好學者百科
1、功能不同
程序是計算機中的程式關於某資料集合上的一次執行活動,是系統進行資源分配和排程的基本單位,是作業系統結構的基礎。
執行緒是作業系統能夠進行運算排程的最小單位。它被包含在程序之中,是程序中的實際運作單位。
2、工作原理不同
在早期面向程序設計的計算機結構中,程序是程式的基本執行實體;在當代面向執行緒設計的計算機結構中,程序是執行緒的容器。程式是指令、資料及其組織形式的描述,程序是程式的實體。
執行緒是獨立排程和分派的基本單位。執行緒可以為作業系統核心排程的核心執行緒,如win32執行緒;由使用者程序自行排程的使用者執行緒,如linux平臺的posix thread;或者由核心與使用者程序,如windows 7的執行緒,進行混合排程。
3、作用不同
程序是作業系統中最基本、重要的概念。是多道程式系統出現後,為了刻畫系統內部出現的動態情況,描述系統內部各道程式的活動規律引進的乙個概念,所有多道程式設計作業系統都建立在程序的基礎上。
通常在乙個程序中可以包含若干個執行緒,它們可以利用程序所擁有的資源。在引入執行緒的作業系統中,通常都是把程序作為分配資源的基本單位,而把執行緒作為獨立執行和獨立排程的基本單位。
程序和執行緒是什麼,有什麼區別呢,程序和執行緒有什麼區別
啃芝士 程序和執行緒是什麼關係?有什麼區別?程序和執行緒有什麼區別? xxp閃電的力量 1 性質不同 程序 process 是計算機中的程式關於某資料集合上的一次執行活動,是系統進行資源分配和排程的基本單位,是作業系統結構的基礎。執行緒 英語 thread 是作業系統能夠進行運算排程的最小單位。它被...
程序和執行緒的區別
程序是一個具有獨立功能的程式關於某個資料集合的一次執行活動。它可以申請和擁有系統資源,是一個動態的概念,是一個活動的實體。它不只是程式的 還包括當前的活動,通過程式計數器的值和處理暫存器的內容來表示。程序是一個 執行中的程式 程式是一個沒有生命的實體,只有處理器賦予程式生命時,它才能成為一個活動的實...
linux 下 程序和執行緒的區別
聯絡 一個執行緒可以建立和撤銷另一個執行緒 同一個程序中的多個執行緒之間可以併發執行 相對程序而言,執行緒是一個更加接近於執行體的概念,它可以與同程序中的其他執行緒共享資料,但擁有自己的棧空間,擁有獨立的執行序列。區別 程序和執行緒的主要差別在於它們是不同的作業系統資源管理方式。程序有獨立的地址空間...