進(jìn)程與線程的聯(lián)系和區(qū)別靖诗?

1、線程的基本概念

概念:

線程是進(jìn)程中執(zhí)行運(yùn)算的最小單位支示,是進(jìn)程中的一個(gè)實(shí)體刊橘,是被系統(tǒng)獨(dú)立調(diào)度和分派的基本單位,線程自己不擁有系統(tǒng)資源颂鸿,只擁有一點(diǎn)在運(yùn)行中必不可少的資源促绵,但它可與同屬一個(gè)進(jìn)程的其它線程共享進(jìn)程所擁有的全部資源。一個(gè)線程可以創(chuàng)建和撤消另一個(gè)線程嘴纺,同一進(jìn)程中的多個(gè)線程之間可以并發(fā)執(zhí)行败晴。

好處 :

(1)易于調(diào)度。
(2)提高并發(fā)性栽渴。通過(guò)線程可方便有效地實(shí)現(xiàn)并發(fā)性尖坤。進(jìn)程可創(chuàng)建多個(gè)線程來(lái)執(zhí)行同一程序的不同部分。
(3)開(kāi)銷少闲擦。創(chuàng)建線程比創(chuàng)建進(jìn)程要快慢味,所需開(kāi)銷很少场梆。。
(4)利于充分發(fā)揮多處理器的功能纯路。通過(guò)創(chuàng)建多線程進(jìn)程或油,每個(gè)線程在一個(gè)處理器上運(yùn)行,從而實(shí)現(xiàn)應(yīng)用程序的并發(fā)性驰唬,使每個(gè)處理器都得到充分運(yùn)行顶岸。

2、進(jìn)程的基本狀態(tài)及狀態(tài)之間的關(guān)系

狀態(tài):運(yùn)行叫编、阻塞蜕琴、掛起阻塞、就緒宵溅、掛起就緒

狀態(tài)之間的轉(zhuǎn)換:準(zhǔn)備就緒的進(jìn)程,被CPU調(diào)度執(zhí)行上炎,變成運(yùn)行態(tài)恃逻;
運(yùn)行中的進(jìn)程,進(jìn)行I/O請(qǐng)求或者不能得到所請(qǐng)求的資源藕施,變成阻塞態(tài)寇损;
運(yùn)行中的進(jìn)程,進(jìn)程執(zhí)行完畢(或時(shí)間片已到)裳食,變成就緒態(tài)矛市;
將阻塞態(tài)的進(jìn)程掛起,變成掛起阻塞態(tài)诲祸,當(dāng)導(dǎo)致進(jìn)程阻塞的I/O操作在用戶重啟進(jìn)程前完成(稱之為喚醒)浊吏,掛起阻塞態(tài)變成掛起就緒態(tài),當(dāng)用戶在I/O操作結(jié)束之前重啟進(jìn)程救氯,掛起阻塞態(tài)變成阻塞態(tài)找田;
將就緒(或運(yùn)行)中的進(jìn)程掛起,變成掛起就緒態(tài)着憨,當(dāng)該進(jìn)程恢復(fù)之后墩衙,掛起就緒態(tài)變成就緒態(tài);

3甲抖、線程和進(jìn)程的關(guān)系以及區(qū)別漆改?

進(jìn)程和線程的關(guān)系:

(1)一個(gè)線程只能屬于一個(gè)進(jìn)程,而一個(gè)進(jìn)程可以有多個(gè)線程准谚,但至少有一個(gè)線程挫剑。
(2)資源分配給進(jìn)程,同一進(jìn)程的所有線程共享該進(jìn)程的所有資源氛魁。
(3)處理機(jī)分給線程暮顺,即真正在處理機(jī)上運(yùn)行的是線程厅篓。
(4)線程在執(zhí)行過(guò)程中,需要協(xié)作同步捶码。不同進(jìn)程的線程間要利用消息通信的辦法實(shí)現(xiàn)同步羽氮。線程是指進(jìn)程內(nèi)的一個(gè)執(zhí)行單元,也是進(jìn)程內(nèi)的可調(diào)度實(shí)體.

進(jìn)程與線程的區(qū)別:

(1)調(diào)度:線程作為調(diào)度和分配的基本單位,進(jìn)程作為擁有資源的基本單位
(2)并發(fā)性:不僅進(jìn)程之間可以并發(fā)執(zhí)行惫恼,同一個(gè)進(jìn)程的多個(gè)線程之間也可并發(fā)執(zhí)行
(3)擁有資源:進(jìn)程是擁有資源的一個(gè)獨(dú)立單位档押,線程不擁有系統(tǒng)資源,但可以訪問(wèn)隸屬于進(jìn)程的資源.
(4)系統(tǒng)開(kāi)銷:在創(chuàng)建或撤消進(jìn)程時(shí)祈纯,由于系統(tǒng)都要為之分配和回收資源令宿,導(dǎo)致系統(tǒng)的開(kāi)銷明顯大于創(chuàng)建或撤消線程時(shí)的開(kāi)銷。

4腕窥、進(jìn)程間通信的方式

(1)管道(pipe)及有名管道(named pipe):管道可用于具有親緣關(guān)系的父子進(jìn)程間的通信粒没,有名管道除了具有管道所具有的功能外,它還允許無(wú)親緣關(guān)系進(jìn)程間的通信簇爆。

(2)信號(hào)(signal):信號(hào)是在軟件層次上對(duì)中斷機(jī)制的一種模擬癞松,它是比較復(fù)雜的通信方式,用于通知進(jìn)程有某事件發(fā)生入蛆,一個(gè)進(jìn)程收到一個(gè)信號(hào)與處理器收到一個(gè)中斷請(qǐng)求效果上可以說(shuō)是一致的响蓉。

(3)消息隊(duì)列(message queue):消息隊(duì)列是消息的鏈接表,它克服了上兩種通信方式中信號(hào)量有限的缺點(diǎn)哨毁,具有寫(xiě)權(quán)限得進(jìn)程可以按照一定得規(guī)則向消息隊(duì)列中添加新信息枫甲;對(duì)消息隊(duì)列有讀權(quán)限得進(jìn)程則可以從消息隊(duì)列中讀取信息。

(4)共享內(nèi)存(shared memory):可以說(shuō)這是最有用的進(jìn)程間通信方式扼褪。它使得多個(gè)進(jìn)程可以訪問(wèn)同一塊內(nèi)存空間想幻,不同進(jìn)程可以及時(shí)看到對(duì)方進(jìn)程中對(duì)共享內(nèi)存中數(shù)據(jù)得更新。這種方式需要依靠某種同步操作话浇,如互斥鎖和信號(hào)量等举畸。

(5)信號(hào)量(semaphore):主要作為進(jìn)程之間及同一種進(jìn)程的不同線程之間得同步和互斥手段。

(6)套接字(socket):這是一種更為一般得進(jìn)程間通信機(jī)制凳枝,它可用于網(wǎng)絡(luò)中不同機(jī)器之間的進(jìn)程間通信抄沮,應(yīng)用非常廣泛。

5岖瑰、同步和互斥的區(qū)別:

當(dāng)有多個(gè)線程的時(shí)候叛买,經(jīng)常需要去同步這些線程以訪問(wèn)同一個(gè)數(shù)據(jù)或資源。例如蹋订,假設(shè)有一個(gè)程序率挣,其中一個(gè)線程用于把文件讀到內(nèi)存,而另一個(gè)線程用于統(tǒng)計(jì)文件中的字符數(shù)露戒。當(dāng)然椒功,在把整個(gè)文件調(diào)入內(nèi)存之前捶箱,統(tǒng)計(jì)它的計(jì)數(shù)是沒(méi)有意義的。但是动漾,由于每個(gè)操作都有自己的線程丁屎,操作系統(tǒng)會(huì)把兩個(gè)線程當(dāng)作是互不相干的任務(wù)分別執(zhí)行,這樣就可能在沒(méi)有把整個(gè)文件裝入內(nèi)存時(shí)統(tǒng)計(jì)字?jǐn)?shù)旱眯。為解決此問(wèn)題晨川,你必須使兩個(gè)線程同步工作。

所謂同步删豺,是指散步在不同進(jìn)程之間的若干程序片斷共虑,它們的運(yùn)行必須嚴(yán)格按照規(guī)定的某種先后次序來(lái)運(yùn)行,這種先后次序依賴于要完成的特定的任務(wù)呀页。如果用對(duì)資源的訪問(wèn)來(lái)定義的話妈拌,同步是指在互斥的基礎(chǔ)上(大多數(shù)情況),通過(guò)其它機(jī)制實(shí)現(xiàn)訪問(wèn)者對(duì)資源的有序訪問(wèn)蓬蝶。在大多數(shù)情況下供炎,同步已經(jīng)實(shí)現(xiàn)了互斥,特別是所有寫(xiě)入資源的情況必定是互斥的疾党。少數(shù)情況是指可以允許多個(gè)訪問(wèn)者同時(shí)訪問(wèn)資源。

所謂互斥惨奕,是指散布在不同進(jìn)程之間的若干程序片斷雪位,當(dāng)某個(gè)進(jìn)程運(yùn)行其中一個(gè)程序片段時(shí),其它進(jìn)程就不能運(yùn)行它們之中的任一程序片段梨撞,只能等到該進(jìn)程運(yùn)行完這個(gè)程序片段后才可以運(yùn)行雹洗。如果用對(duì)資源的訪問(wèn)來(lái)定義的話,互斥某一資源同時(shí)只允許一個(gè)訪問(wèn)者對(duì)其進(jìn)行訪問(wèn)卧波,具有唯一性和排它性时肿。但互斥無(wú)法限制訪問(wèn)者對(duì)資源的訪問(wèn)順序,即訪問(wèn)是無(wú)序的港粱。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末螃成,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子查坪,更是在濱河造成了極大的恐慌寸宏,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件偿曙,死亡現(xiàn)場(chǎng)離奇詭異氮凝,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)望忆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門罩阵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)竿秆,“玉大人,你說(shuō)我怎么就攤上這事稿壁∮母郑” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵常摧,是天一觀的道長(zhǎng)搅吁。 經(jīng)常有香客問(wèn)我,道長(zhǎng)落午,這世上最難降的妖魔是什么谎懦? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮溃斋,結(jié)果婚禮上界拦,老公的妹妹穿的比我還像新娘。我一直安慰自己梗劫,他們只是感情好享甸,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著梳侨,像睡著了一般蛉威。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上走哺,一...
    開(kāi)封第一講書(shū)人閱讀 51,488評(píng)論 1 302
  • 那天蚯嫌,我揣著相機(jī)與錄音,去河邊找鬼丙躏。 笑死择示,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的晒旅。 我是一名探鬼主播栅盲,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼废恋!你這毒婦竟也來(lái)了谈秫?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤鱼鼓,失蹤者是張志新(化名)和其女友劉穎孝常,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蚓哩,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡构灸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片喜颁。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡稠氮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出半开,到底是詐尸還是另有隱情隔披,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布寂拆,位于F島的核電站奢米,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏纠永。R本人自食惡果不足惜鬓长,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望尝江。 院中可真熱鬧涉波,春花似錦、人聲如沸炭序。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)惭聂。三九已至窗声,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間辜纲,已是汗流浹背笨觅。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留侨歉,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓揩魂,卻偏偏與公主長(zhǎng)得像幽邓,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子火脉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

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

  • 進(jìn)程和線程 進(jìn)程線程的區(qū)別1牵舵、進(jìn)程是什么?是具有一定獨(dú)立功能的程序倦挂、它是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位畸颅,重點(diǎn)...
    HeartGo閱讀 1,211評(píng)論 0 4
  • *進(jìn)程**:程序的一次執(zhí)行,可理解為一個(gè)容器方援;**線程**:CPU的基本調(diào)度單位没炒,也可理解為容器中的工作單位。 +...
    raincoco閱讀 247評(píng)論 0 0
  • 又來(lái)到了一個(gè)老生常談的問(wèn)題犯戏,應(yīng)用層軟件開(kāi)發(fā)的程序員要不要了解和深入學(xué)習(xí)操作系統(tǒng)呢送火? 今天就這個(gè)問(wèn)題開(kāi)始拳话,來(lái)談?wù)劜?..
    tangsl閱讀 4,126評(píng)論 0 23
  • OoYoO閱讀 25,141評(píng)論 3 2
  • 本來(lái)一大堆話要說(shuō),點(diǎn)到這又不知道要說(shuō)什么了种吸。其實(shí)我也不知道喜不喜歡她弃衍,但是我很害怕失去她,心情好復(fù)雜坚俗!我發(fā)現(xiàn)我根本...
    潛泳的大鯊魚(yú)閱讀 154評(píng)論 0 0