有一家游樂園陪蜻,它叫Program

本文是在看了阮一峰先生的《進(jìn)程與線程的一個(gè)簡單解釋》之后按照個(gè)人理解寫的一篇關(guān)于闡述程序邦马、進(jìn)程和線程關(guān)系的故事Demo,在內(nèi)容上不是很嚴(yán)謹(jǐn)宴卖,請(qǐng)多包涵滋将。

在某個(gè)不知名郊區(qū),一個(gè)叫程序員的大富翁買下了一大片土地症昏,建造了一座很大很大的游樂園随闽,給它起了個(gè)名字:Program。

這里寫圖片描述

游樂園(Program)很大很大肝谭,有很多很多個(gè)游樂項(xiàng)目橱脸,每個(gè)游樂項(xiàng)目都有很多個(gè)工作人員在參與工作

這里寫圖片描述

程先生自己負(fù)責(zé)統(tǒng)計(jì)游樂園(Program)的營收。他在想分苇,有一些游樂項(xiàng)目并不常年使用添诉,比如清涼游泳池,是只在夏天開放的医寿,比如某些節(jié)日專屬的游樂項(xiàng)目栏赴,如果在計(jì)算成本的時(shí)候要總是把這些不運(yùn)營的項(xiàng)目也統(tǒng)計(jì)起來就太麻煩了,于是聰明的程先生想到了一個(gè)萬全的解決方案靖秩。他拍手道:“對(duì)靶刖臁!我可以把當(dāng)天運(yùn)營的項(xiàng)目和當(dāng)天不運(yùn)營的項(xiàng)目分開來肮低弧花颗!這樣我只要統(tǒng)計(jì)當(dāng)天運(yùn)營的項(xiàng)目的成本就行啦!”他覺得自己這個(gè)想法巧妙極了惠拭,于是乎決定給當(dāng)天投入運(yùn)營的項(xiàng)目起一個(gè)轟轟烈烈的名字扩劝,他反復(fù)翻閱了維科英漢漢英詞典庸论,最后發(fā)現(xiàn)Process這個(gè)單詞看起來了不起極了,從此游樂園(Program)里的運(yùn)營項(xiàng)目就有了一個(gè)新名字:Process棒呛。

這里寫圖片描述

于是乎Process和Program的概念就清晰了聂示,Program就是游樂園本身,它包含了游樂園所有的游樂項(xiàng)目簇秒,它是一個(gè)靜態(tài)的概念鱼喉。而Process是被投入運(yùn)營的游樂項(xiàng)目,是動(dòng)態(tài)的趋观。游樂園里某一個(gè)游樂項(xiàng)目從早上8點(diǎn)開始投入運(yùn)營扛禽,到晚上9點(diǎn)結(jié)束運(yùn)營,為一個(gè)Process皱坛。9點(diǎn)過后游樂項(xiàng)目停止運(yùn)營了便不能算一個(gè)Process了编曼。也就是說Process是Program的一次執(zhí)行,寫進(jìn)硬盤里的程序自然是靜態(tài)的麸恍,通過啟動(dòng)程序調(diào)動(dòng)里面的進(jìn)程,此時(shí)的進(jìn)程是動(dòng)態(tài)的搀矫,可以被Start抹沪,也可以被Destroy。**

這里寫圖片描述

每個(gè)運(yùn)營項(xiàng)目(Process)都是獨(dú)立的瓤球,各自占有一片地方融欧,每個(gè)運(yùn)營項(xiàng)目(Process)也有好多好多工人(Thread),有負(fù)責(zé)維護(hù)運(yùn)營這個(gè)游樂設(shè)施的卦羡,有負(fù)責(zé)每天接待客人的噪馏。可是為什么程先生要請(qǐng)那么多的工人呢绿饵?像維護(hù)游樂設(shè)施的欠肾,請(qǐng)一個(gè)維護(hù)全部的游樂設(shè)施不就行了嗎?當(dāng)然每個(gè)人都會(huì)這么想拟赊,程先生也不是傻子刺桃,他請(qǐng)這么多員工的原因是:X國是個(gè)極度貧困落后的國家,在這里勞動(dòng)力是極為廉價(jià)的吸祟,并且十分人性化瑟慈,只有當(dāng)勞動(dòng)的時(shí)候才會(huì)向老板要求一點(diǎn)面包和金錢。也就是說屋匕,線程是進(jìn)程的子單位葛碧,也是程序執(zhí)行流的基本單位。線程有輕量級(jí)的優(yōu)點(diǎn)过吻,每次start僅僅向系統(tǒng)請(qǐng)求支持運(yùn)行的一點(diǎn)點(diǎn)必不可少的資源进泼。**

這里寫圖片描述

在這種貧窮落后的國家里當(dāng)然不可能建立起高科技的游樂設(shè)施啦。因此這里的游樂設(shè)施可是遠(yuǎn)近聞名的純?nèi)斯さ呐丁O衲μ燧嗊@種小型的游樂項(xiàng)目比較簡單缘琅,只要一個(gè)工人(Thread)在下面不停地推動(dòng)它轉(zhuǎn)圈粘都;像旋轉(zhuǎn)魔盤也比較簡單,只要一個(gè)壯一點(diǎn)的工人(Thread)在魔盤下拉著繩子轉(zhuǎn)圈跑刷袍;像海盜船這樣的大項(xiàng)目就麻煩了习勤,需要兩個(gè)工人(Thread)配合著從兩邊來回交替地拖拽海盜船。游樂園(Program)每天都沉浸在這樣的汗水和歡聲笑語中应结。

這里寫圖片描述

游樂園(Program)實(shí)在是太大了匣沼,為了方便管理,程先生開始把每個(gè)游樂項(xiàng)目當(dāng)作一個(gè)獨(dú)立的單位雷酪,在每個(gè)游樂項(xiàng)目里有這個(gè)項(xiàng)目的工人們用的廁所淑仆,休息用的房間等等。富翁規(guī)定哥力,每個(gè)工人(Thread)只能在自己的工作區(qū)域內(nèi)活動(dòng)蔗怠,并享有這片區(qū)域的資源。即同一個(gè)進(jìn)程里的線程共享著這個(gè)進(jìn)程的資源吩跋。線程之間通信是不需要通過調(diào)用內(nèi)核的寞射。**

這里寫圖片描述

剛開始工人們住得并不舒服,因?yàn)楫?dāng)工人A進(jìn)去廁所大便的時(shí)候工人B也跑了進(jìn)來锌钮,拉了一坨屎在工人A的褲子上桥温;當(dāng)休息室睡滿了之后,工人B還大搖大擺地走進(jìn)來梁丘,壓在工人A的身上睡了過去侵浸。后來工人A被工人B壓死了,程先生意識(shí)到問題的重要性氛谜,于是善良的程先生決定買一些鎖來供工人們使用掏觉。由于線程共用同一片內(nèi)存空間,就會(huì)出現(xiàn)多個(gè)線程讀寫同一片內(nèi)存空間這種問題值漫。為了解決這個(gè)問題提出了鎖的概念履腋。**

這里寫圖片描述

他給廁所加了一把鎖,然后跟工人們說道:”這把鎖是我花重金買來的惭嚣,叫做Mutex(互斥鎖)遵湖,以后你們要養(yǎng)成上廁所關(guān)門的好習(xí)慣,其他人如果看到廁所被鎖起來就說明里面有人晚吞,這時(shí)候千萬不要強(qiáng)行拆門延旧,乖乖在門口等〔鄣兀“

這里寫圖片描述

然后程先生指著掛在休息室門上的幾把鑰匙迁沫,說道:”這個(gè)可不一樣芦瘾,這個(gè)叫Semaphore(信號(hào)量),以后你們誰進(jìn)去休息了集畅,就取一把鑰匙近弟,當(dāng)你看到門上的鑰匙被取光了,說明里面已經(jīng)沒有位置啦挺智。那你們就乖乖在門口等就好啦“

這里寫圖片描述

在程先生的整治下祷愉,游樂園(Program)越來越井然有序,也不再發(fā)生有人被大便活埋赦颇,或者睡覺的時(shí)候被莫名的壓死的事故了二鳄。

這里寫圖片描述

每天游樂項(xiàng)目運(yùn)營起來的時(shí)候就有工人(Thread)加入工作,這些工人們都被人們所熟知媒怯,但其實(shí)在游樂園(Program)中订讼,有一類人是不被人們知道的,他們被稱作Daemon扇苞。他們就像守護(hù)神一樣守護(hù)著這個(gè)游樂項(xiàng)目里的所有人欺殿,為他們提供便利。比如說鳖敷,偷偷摸摸地?fù)煲幌吕〔彼眨低得剡f一些資料啊什么的。這里闡述的是守護(hù)線程的概念哄陶。守護(hù)線程是特殊的線程帆阳,在后臺(tái)為其他線程提供資源等哺壶,如Java的垃圾回收機(jī)制屋吨。**

這里寫圖片描述

就這樣,程先生的游樂園(Program)每天都在欣欣向榮山宾,在這片貧困落后的國度儼然是一處靚麗的風(fēng)景線至扰。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市资锰,隨后出現(xiàn)的幾起案子敢课,更是在濱河造成了極大的恐慌,老刑警劉巖绷杜,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件直秆,死亡現(xiàn)場離奇詭異,居然都是意外死亡鞭盟,警方通過查閱死者的電腦和手機(jī)圾结,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來齿诉,“玉大人筝野,你說我怎么就攤上這事晌姚。” “怎么了歇竟?”我有些...
    開封第一講書人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵挥唠,是天一觀的道長。 經(jīng)常有香客問我焕议,道長宝磨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任号坡,我火速辦了婚禮懊烤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宽堆。我一直安慰自己腌紧,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開白布畜隶。 她就那樣靜靜地躺著壁肋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪籽慢。 梳的紋絲不亂的頭發(fā)上浸遗,一...
    開封第一講書人閱讀 52,268評(píng)論 1 309
  • 那天,我揣著相機(jī)與錄音箱亿,去河邊找鬼跛锌。 笑死,一個(gè)胖子當(dāng)著我的面吹牛届惋,可吹牛的內(nèi)容都是我干的髓帽。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼脑豹,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼郑藏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起瘩欺,我...
    開封第一講書人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤必盖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后俱饿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體歌粥,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年拍埠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了失驶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡械拍,死狀恐怖突勇,靈堂內(nèi)的尸體忽然破棺而出装盯,到底是詐尸還是另有隱情,我是刑警寧澤甲馋,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布埂奈,位于F島的核電站,受9級(jí)特大地震影響定躏,放射性物質(zhì)發(fā)生泄漏账磺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一痊远、第九天 我趴在偏房一處隱蔽的房頂上張望垮抗。 院中可真熱鬧,春花似錦碧聪、人聲如沸冒版。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辞嗡。三九已至,卻和暖如春滞造,著一層夾襖步出監(jiān)牢的瞬間续室,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來泰國打工谒养, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留挺狰,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓买窟,卻偏偏與公主長得像丰泊,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蔑祟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

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