執行緒和程序

2021-07-04 18:55:48 字數 457 閱讀 5855

對於求職者,在面試的時候大多都會被問到「你對多執行緒了解麼?給我講講執行緒和程序的區別吧。」

在unix中,乙個程序可以理解為執行緒+位址空間+檔案描述符+資料,道破現實,其實就相當於老闆和員工,老闆就是程序,員工就是執行緒。老闆需要僱傭若干員工(執行緒),還要有辦公樓(位址空間),還要有若干的辦公裝置(檔案描述符),還要有專案(資料),不同的員工,在老闆提供的這些資源下,可以做不同的/相同的工作。對於員工來說,只需要使用老闆提供的這些資源來展開工作,不需要自己提供硬體資源(即使拿著自己的筆記本,也是來娛樂的,與工作無關,哈哈)。在員工離職(執行緒結束)的時候,公司的一草一木你都是拿不走的,而新來的員工,繼續你的位置,進行同樣的工作。

這是背景或角色上的分析,再看看所謂的排程效率,從現實角度看,二者的排程效率就不言而喻了。員工跳個槽那是分分鐘的是,無非是寫個「世界很大,我想去看看」的辭職報告,再發個微博曬曬,不帶走一片雲彩。而老闆要是想「搬遷」,那就麻煩的一塌糊塗了。

執行緒和程序

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

程序和執行緒

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

程序和執行緒

1 程序表示資源分配的最小單位,又是排程執行的基本單位。當執行乙個程式的時候,系統就會建立乙個程序,並為它分配資源 包括記憶體空間,磁碟空間,i o裝置等 然後把該程序放入程序的就緒佇列。程序排程程式選中它,為它分配cpu及其他有關資源,該程序才真正執行。2 執行緒是程序中執行運算的最小單位,又是執...