程序和執行緒

2021-07-10 05:45:10 字數 547 閱讀 1546

1) 程序表示資源分配的最小單位,又是排程執行的基本單位。

當執行乙個程式的時候,系統就會建立乙個程序,並為它分配資源(包括記憶體空間,磁碟空間,i/o裝置等),然後把該程序放入程序的就緒佇列。

程序排程程式選中它,為它分配cpu及其他有關資源,該程序才真正執行。

2) 執行緒是程序中執行運算的最小單位,又是執行處理機排程的基本單位。

程序看作作業系統的任務,執行緒就是子任務。

作業系統提供執行緒就是為了方便而有效的實現併發性。

3) 程序和執行緒的關係

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

-----資源分配給程序,同一程序的所有執行緒共享該程序的所有資源。共享**段(**和常量),資料段(全域性和靜態變數),擴充套件段(堆儲存)

但每個執行緒擁有自己的棧段(執行時段),存放所有的區域性變數和臨時變數。

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

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

執行緒和程序

標準的定義是 程序是執行緒的容器,乙個程序可於乙個或者多個執行緒,它是系統分配資源的基本單位 同乙個程序下,執行緒共享位址空降 已經開啟的檔案 訊號處理函式 報警訊號和其他,執行緒自己只保留程式計數器和棧。但是很遺憾的,這個只是教科書上的定義,實際情況是每個作業系統實現的作業系統特性不同,實現的方法...

程序和執行緒

乙個程序就是當前正在執行的乙個程式,包括程式的暫存器 程式計數器和變數的當前值。不同的程序擁有不同的位址空間。而執行緒可以理解為是程序中的控制流。同乙個程序內也就是說在同乙個位址空間內可以有多個控制流。也就是可以有多個線 程,他們共享位址空間。我們通常將程序視為是資源的集合,程序中有程式的正文 資料...

執行緒和程序

對於求職者,在面試的時候大多都會被問到 你對多執行緒了解麼?給我講講執行緒和程序的區別吧。在unix中,乙個程序可以理解為執行緒 位址空間 檔案描述符 資料,道破現實,其實就相當於老闆和員工,老闆就是程序,員工就是執行緒。老闆需要僱傭若干員工 執行緒 還要有辦公樓 位址空間 還要有若干的辦公裝置 檔...