進(jìn)程與線程的簡易圖示[部分轉(zhuǎn)]

說明: 本文在原文基礎(chǔ)上做了幾處修改和補充,原文地址見文章末尾

定義:

一 程序只是一組指令的有序集合喜庞。

二 進(jìn)程是具有一定獨立功能的程序關(guān)于某個數(shù)據(jù)集合上的一次運行活動,是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個獨立單位;

三 線程是進(jìn)程的一個實體,是CPU調(diào)度和分派的基本單位,它是比進(jìn)程更小的能獨立運行的基本單位.線程自己基本上不擁有系統(tǒng)資源,只擁有一點在運行中必不可少的資源(如程序計數(shù)器,一組寄存器和棧),一個線程可以創(chuàng)建和撤銷另一個線程;


  1. 計算機的核心是CPU,它承擔(dān)了所有的計算任務(wù)譬重。它就像一座工廠读整,時刻在運行簿训。

  2. 假定工廠的電力有限,一次只能供給一個車間使用。也就是說强品,一個車間開工的時候膘侮,其他車間都必須停工。背后的含義就是的榛,單個CPU一次只能運行一個任務(wù)琼了。

  3. 進(jìn)程就好比工廠的車間,它代表CPU所能處理的單個任務(wù)夫晌。
    任一時刻雕薪,CPU總是運行一個進(jìn)程,其他進(jìn)程處于非運行狀態(tài)晓淀。
    有的OS中CPU的調(diào)度單位是線程所袁,一次只能執(zhí)行一個線程(當(dāng)然多核的有幾核就能同時執(zhí)行幾個線程),而不是一次執(zhí)行一個進(jìn)程凶掰!

  4. 一個車間里燥爷,可以有很多工人。他們協(xié)同完成一個任務(wù)懦窘。

  5. 線程就好比車間里的工人前翎。一個進(jìn)程可以包括多個線程。

  6. 車間的空間是工人們共享的畅涂,比如許多房間是每個工人都可以進(jìn)出的港华。這象征一個進(jìn)程的內(nèi)存空間是共享的,每個線程都可以使用這些共享內(nèi)存毅戈。

  7. 可是苹丸,每間房間的大小不同,有些房間最多只能容納一個人苇经,比如廁所赘理。里面有人的時候,其他人就不能進(jìn)去了扇单。這代表一個線程使用某些共享內(nèi)存時商模,其他線程必須等它結(jié)束,才能使用這一塊內(nèi)存蜘澜。
    (PS:)因為線程間同步是為了防止競爭(就是說因同時修改施流,而導(dǎo)致的數(shù)據(jù)不一致)。本質(zhì)上講鄙信,進(jìn)程的內(nèi)存空間是天然獨立的瞪醋,線程的內(nèi)存空間是天然共享的。

  8. 一個防止他人進(jìn)入的簡單方法装诡,就是門口加一把鎖银受。先到的人鎖上門践盼,后到的人看到上鎖,就在門口排隊宾巍,等鎖打開再進(jìn)去咕幻。這就叫"互斥鎖"(Mutual exclusion,縮寫 Mutex)顶霞,防止多個線程同時讀寫某一塊內(nèi)存區(qū)域肄程。

  9. 還有些房間,可以同時容納n個人选浑,比如廚房蓝厌。也就是說,如果人數(shù)大于n古徒,多出來的人只能在外面等著褂始。這好比某些內(nèi)存區(qū)域,只能供給固定數(shù)目的線程使用描函。

  10. 這時的解決方法,就是在門口掛n把鑰匙狐粱。進(jìn)去的人就取一把鑰匙舀寓,出來時再把鑰匙掛回原處。后到的人發(fā)現(xiàn)鑰匙架空了肌蜻,就知道必須在門口排隊等著了互墓。這種做法叫做"信號量"(Semaphore),用來保證多個線程不會互相沖突蒋搜。

不難看出篡撵,mutex是semaphore的一種特殊情況(n=1時)。也就是說豆挽,完全可以用后者替代前者育谬。但是,因為mutex較為簡單帮哈,且效率高膛檀,所以在必須保證資源獨占的情況下,還是采用這種設(shè)計娘侍。

  1. 操作系統(tǒng)的設(shè)計咖刃,因此可以歸結(jié)為三點:

(1)以多進(jìn)程形式,允許多個任務(wù)同時運行憾筏;

(2)以多線程形式嚎杨,允許單個任務(wù)分成不同的部分運行;

(3)提供協(xié)調(diào)機制氧腰,一方面防止進(jìn)程之間和線程之間產(chǎn)生沖突枫浙,另一方面允許進(jìn)程之間和線程之間共享資源刨肃。

  1. 進(jìn)程與線程區(qū)別與聯(lián)系總結(jié):
  • 劃分尺度:線程更小,所以多線程程序并發(fā)性更高;
  • 資源分配&處理器調(diào)度:進(jìn)程是資源分配的基本單位自脯,線程是處理器調(diào)度的基本單位
  • 地址空間:進(jìn)程擁有獨立的地址空間之景;線程沒有獨立的地址空間,同一進(jìn)程內(nèi)多個線程共享其資源
  • 執(zhí)行:每個線程都有一個程序運行的入口膏潮,順序執(zhí)行序列和程序的出口锻狗,但線程不能單獨執(zhí)行,必須組成進(jìn)程焕参,一個進(jìn)程至少有一個主線程轻纪。線程自己基本上不擁有系統(tǒng)資源,只擁有一點在運行中必不可少的資源(如程序計數(shù)器,一組寄存器和棧),但是它可與同屬一個進(jìn)程的其他的線程共享進(jìn)程所擁有的全部資源.
    多線程的意義在于一個應(yīng)用程序中,有多個執(zhí)行部分可以同時執(zhí)行叠纷。但操作系統(tǒng)并沒有將多個線程看做多個獨立的應(yīng)用刻帚,來實現(xiàn)進(jìn)程的調(diào)度和管理以及資源分配。
  • 簡而言之涩嚣,一個程序至少有一個進(jìn)程崇众,一個進(jìn)程至少有一個線程。 *

原文地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末航厚,一起剝皮案震驚了整個濱河市顷歌,隨后出現(xiàn)的幾起案子幔睬,更是在濱河造成了極大的恐慌眯漩,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件麻顶,死亡現(xiàn)場離奇詭異赦抖,居然都是意外死亡,警方通過查閱死者的電腦和手機辅肾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進(jìn)店門队萤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人矫钓,你說我怎么就攤上這事浮禾。” “怎么了份汗?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵盈电,是天一觀的道長。 經(jīng)常有香客問我杯活,道長匆帚,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任旁钧,我火速辦了婚禮吸重,結(jié)果婚禮上互拾,老公的妹妹穿的比我還像新娘。我一直安慰自己嚎幸,他們只是感情好颜矿,可當(dāng)我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著嫉晶,像睡著了一般骑疆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上替废,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天箍铭,我揣著相機與錄音,去河邊找鬼椎镣。 笑死诈火,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的状答。 我是一名探鬼主播冷守,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼惊科!你這毒婦竟也來了教沾?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤译断,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后或悲,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體孙咪,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年巡语,在試婚紗的時候發(fā)現(xiàn)自己被綠了翎蹈。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡男公,死狀恐怖荤堪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情枢赔,我是刑警寧澤澄阳,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站踏拜,受9級特大地震影響碎赢,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜速梗,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一肮塞、第九天 我趴在偏房一處隱蔽的房頂上張望襟齿。 院中可真熱鬧,春花似錦枕赵、人聲如沸猜欺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽开皿。三九已至,卻和暖如春装黑,著一層夾襖步出監(jiān)牢的瞬間副瀑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工恋谭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留糠睡,地道東北人。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓疚颊,卻偏偏與公主長得像狈孔,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子材义,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,629評論 2 354

推薦閱讀更多精彩內(nèi)容