程序和執行緒的區別

時間 2023-01-02 05:05:11

1樓:羿小天

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

程序是一個「執行中的程式」。程式是一個沒有生命的實體,只有處理器賦予程式生命時,它才能成為一個活動的實體,我們稱其為程序。

通常在一個程序中可以包含若干個執行緒,它們可以利用程序所擁有的資源。在引入執行緒的作業系統中,通常都是把程序作為分配資源的基本單位,而把執行緒作為獨立執行和獨立排程的基本單位。由於執行緒比程序更小,基本上不擁有系統資源,故對它的排程所付出的開銷就會小得多,能更高效的提高系統內多個程式間併發執行的程度。

執行緒和程序的區別在於,子程序和父程序有不同的**和資料空間,而多個執行緒則共享資料空間,每個執行緒有自己的執行堆疊和程式計數器為其執行上下文。多執行緒主要是為了節約cpu時間,發揮利用,根據具體情況而定。執行緒的執行中需要使用計算機的記憶體資源和cpu。

執行緒與程序的區別歸納:

b.通訊:程序間通訊ipc,執行緒間可以直接讀寫程序資料段(如全域性變數)來進行通訊——需要程序同步和互斥手段的輔助,以保證資料的一致性。

c.排程和切換:執行緒上下文切換比程序上下文切換要快得多。

d.在多執行緒os中,程序不是一個可執行的實體。

程序是具有一定獨立功能的程式關於某個資料集合上的一次執行活動,程序是系統進行資源分配和排程的一個獨立單位。執行緒是程序的一個實體,是cpu排程和分派的基本單位,它是比程序更小的能獨立執行的基本單位。執行緒自己基本上不擁有系統資源,只擁有一點在執行中必不可少的資源(如程式計數器,一組暫存器和棧),但是它可與同屬一個程序的其他的執行緒共享程序所擁有的全部資源。

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

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

linux 下 程序和執行緒的區別

聯絡 一個執行緒可以建立和撤銷另一個執行緒 同一個程序中的多個執行緒之間可以併發執行 相對程序而言,執行緒是一個更加接近於執行體的概念,它可以與同程序中的其他執行緒共享資料,但擁有自己的棧空間,擁有獨立的執行序列。區別 程序和執行緒的主要差別在於它們是不同的作業系統資源管理方式。程序有獨立的地址空間...

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

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