程序和執行緒

2021-09-25 23:38:03 字數 705 閱讀 7066

一、程序的作用

程序是為了提高cpu的執行效率,減少因為程式等待帶來的cpu空轉以及其他計算機軟硬體資源的浪費而提出來的。

二、執行緒的作用

執行緒是為了減少程序切換和建立的開銷,提高執行效率和節省資源 。

三、程序和執行緒的區別?

排程:程序是作業系統進行資源分配的基本單位,而執行緒是任務排程和執行的基本單位。

擁有資源:程序是擁有資源的基本單位,執行緒不擁有資源,但執行緒可以共享器隸屬程序的系統資源。

併發性:程序可以併發執行,而且同一程序內的多個執行緒也可以併發執行,大大提高了系統的吞吐量。

系統開銷:建立和撤銷程序時,系統都要為之分配或**資源,在程序切換時,涉及當前執行程序cpu環境的儲存以及新排程的程序cpu環境的設定;而執行緒切換時只需儲存和設定少量暫存器內容,因此開銷很小,另外,由於同一程序內的多個執行緒共享程序的位址空間,因此這些執行緒之間的同步與通訊比較容易實現,甚至無須作業系統的干預。

通訊方面:程序間通訊需要借助作業系統,而執行緒間可以直接讀/寫程序資料段來進行通訊。

四、程序間通訊方式

管道( pipe )有名管道 (named pipe)訊號量( semophore )訊息佇列( message queue )訊號 ( signal )套接字( socket )

五、執行緒間通訊方式

事件(event)訊號量(semaphore)互斥量(mutex)臨界區(critical section)

執行緒和程序

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

程序和執行緒

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

執行緒和程序

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