怎麼理解執行緒與程序?如何通俗的理解執行緒和程序呢

時間 2022-12-27 02:50:05

1樓:妮露

程序和執行緒是兩個相對的概念,通常來說,一個程序可以定義程式的一個例項。在win32中,程序並不執行什麼,它只是佔據應用程式所使用的地址空間。為了讓程序完成一定的工作,程序必須至少佔有一個執行緒,正是這個執行緒負責包含程序地址空間中的**。

實際上,一個程序可以包含幾個執行緒,它們可以同時執行程序地址空間中的**。為了做到這一點,每個執行緒有自己的一組cpu暫存器和堆疊。每個程序中至少有一個執行緒在執行其地址空間中的**。

如果沒有執行緒執行程序地址空間中的**,程序也就沒有繼續存在的理由,系統將自動清除程序及其地址空間。

2樓:匿名使用者

我是這麼理解的,在windows系統中,程序就是我們可以看到的開啟了一個個視窗,一個個任務,面向使用者的。

而執行緒是面向cpu和底層作業系統的,一個程序可能包含多個執行緒。

3樓:

程序是程式的一個執行的過程,而執行緒是比程序更小的程式執行過程!

4樓:尚學堂j**a學院

什麼是程序?什麼是執行緒?

程序:程序是併發執行程式在執行過程中資源分配和管理的基本單位(資源分配的最小單位)。程序可以理解為一個應用程式的執行過程,應用程式一旦執行,就是一個程序。

每個程序都有自己獨立的地址空間,每啟動一個程序,系統就會為它分配地址空間,建立資料表來維護**段、堆疊段和資料段。

執行緒:程式執行的最小單位。

為什麼要有執行緒?

每個程序都有自己的地址空間,即程序空間,在網路或多使用者換機下,一個伺服器通常需要接收大量不確定數量使用者的併發請求,為每一個請求都建立一個程序顯然行不通(系統開銷大響應使用者請求效率低),因此作業系統中執行緒概念被引進。

程序與執行緒的區別?

2. 資源擁有: 同一程序的所有執行緒共享本程序的資源,如記憶體,cpu,io等。程序之間的資源是獨立的,無法共享。

3. 執行過程:每一個程序可以說就是一個可執行的應用程式,每一個獨立的程序都有一個程式執行的入口,順序執行序列。

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

4. 健壯性: 因為同一程序的所以執行緒共享此執行緒的資源,因此當一個執行緒發生崩潰時,此程序也會發生崩潰。

但是各個程序之間的資源是獨立的,因此當一個程序崩潰時,不會影響其他程序。因此程序比執行緒健壯。

執行緒執行開銷小,但不利於資源的管理與保護。

程序的執行開銷大,但可以進行資源的管理與保護。程序可以跨機器前移。

程序與執行緒的選擇取決條件?

因為程序是資源分配的基本單位,執行緒是程式執行的最小單。以及程序與執行緒之間的健壯性來考慮。

1. 在程式中,如果需要頻繁建立和銷燬的使用執行緒。因為程序建立和銷燬開銷很大(需要不停的分配資源),但是執行緒頻繁的呼叫只是改變cpu的執行,開銷小。

2. 如果需要程式更加的穩定安全時,可以選擇程序。如果追求速度,就選擇執行緒。

希望對您有所幫助!~

程序和執行緒分別怎麼理解?

5樓:匿名使用者

一個程式就是一個程序,而一個程式中的多個任務則被稱為執行緒。程序是表示資源分配的基本單位,又是排程執行的基本單位。執行緒是程序中執行運算的最小單位,亦即執行處理機排程的基本單位。

程序和執行緒的關係。

(1)一個執行緒只能屬於一個程序,而一個程序可以有多個執行緒,但至少有一個執行緒。執行緒是作業系統可識別的最小執行和排程單位。

(2)資源分配給程序,同一程序的所有執行緒共享該程序的所有資源。同一程序中的多個執行緒共享**段(**和常量),資料段(全域性變數和靜態變數),擴充套件段(堆儲存)。但是每個執行緒擁有自己的棧段,棧段又叫執行時段,用來存放所有區域性變數和臨時變數。

(3)處理機分給執行緒,即真正在處理機上執行的是執行緒。

(4)執行緒在執行過程中,需要協作同步。不同程序的執行緒間要利用訊息通訊的辦法實現同步。

如果把上課的過程比作程序,那麼每個學生就是一個執行緒,他們共享教室,即執行緒共享程序的記憶體空間。每一個時刻,只能一個學生問老師問題,老師回答完畢,輪到下一個。即執行緒在一個時間片內佔有cpu。

如何通俗的理解執行緒和程序呢

6樓:谷刮旱

樓上太扯了。沒抓住本質,不要誤導。

普通程式都是單程序單執行緒的,就像一個人在幹一件事。

多程序就像多個人在幹多件事。(當然,也可能是協作完成一件事).關鍵在於多人。每個人是獨立的。

而多執行緒就像是一個人同時幹多件事。什麼時候幹哪件事是不確定的。

所以一個程序就像一個獨立的人,而一個執行緒只是一個人的一段時間。

程序和執行緒分別怎麼理解?

7樓:紫風鈴佳

程序簡單理解為單個程式,它至少有一個執行緒。

8樓:匿名使用者

由作業系統以程序為單位分配資源,每一個程序都擁有各自的記憶體、系統物件(視窗等),相對獨立,程序間不會造成直接影響。就好比一個個公司,各有各的企業號註冊地資金和業務。

而執行緒則好比是公司裡的員工,分別負責不同的工作,相互間可以協同運轉。從另一個角度上來說,可以把執行緒理解為程序從系統申請到的cpu分片時間和執行緒堆疊,就像企業從社會上招聘來的人。

9樓:hon客

程序屬於系統軟體執行程式,叫程序!執行緒是屬於cpu執行程式,叫執行緒!

10樓:姓泓惠爰

簡單的說:程序指正在執行的程式。

執行緒指執行任務時,為執行任務開闢的通道個數。通道個數越多,執行越快。

什麼是執行緒和程序區別

11樓:騰訊電腦管家

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

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

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

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

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

解釋一下程序和執行緒的概念?

j**a中執行緒與程序到底如何理解啊?到底什麼是執行緒,什麼是程序啊?如何更好的理解它們呢?如何才能更輕鬆

怎麼理解“張量”這個概念,怎麼通俗的理解張量

張量概念是向量概念和矩陣概念的推廣,標量是零階張量,向量是一階張量,矩陣 方陣 是二階張量,而三階張量則好比立體矩陣,更高階的張量用圖形無法表達。度量張量 維基百科,自由的百科全書 重定向自量度張量 黎曼幾何的度量張量 在物理學上稱度規張量 是二階對稱非退化張量用來衡量度量空間中的距離及角度。怎麼通...

通俗的講 什麼是張量,怎麼通俗的理解張量

簡單的說 張量概念是向量概念和矩陣概念的推廣,標量是零階張量,向量是一階張量,矩陣 方陣 是二階張量,而三階張量則好比立體矩陣,更高階的張量用圖形無法表達。度量張量 維基百科,自由的百科全書 重定向自量度張量 黎曼幾何的度量張量 在物理學上稱度規張量 是二階對稱非退化張量用來衡量度量空間中的距離及角...

kgf是什麼單位,怎麼通俗的理解kgf單位

烊是千璽的烊 kgf是一種力的單位,叫千克力。在採用國際單位制以前,常用的單位制有絕對單位制和重力單位制。在絕對單位制中,規定質量為基本量,再由牛頓第二定律規定力的單位。常用的絕對單位制又有兩種,一種稱為米 千克 秒制 mks制 另一種稱為釐米 克 秒制 cgs制 kgf單位換算 kgf 千克力,公...