2020騰訊面試題-進程和線程的區(qū)別

一個程序至少有一個進程榄棵,一個進程至少有一個線程

定義方面:進程是程序在某個數(shù)據(jù)集合上的一次運行活動;線程是進程中的一個執(zhí)行路徑曲伊。

角色方面:在支持線程機制的系統(tǒng)中髓梅,進程是系統(tǒng)資源分配的單位,線程是系統(tǒng)調(diào)度的單位壳繁。

資源共享方面:進程之間不能共享資源震捣,而線程共享所在進程的地址空間和其它資源。同時線程還有自己的棧和棧指針闹炉,程序計數(shù)器等寄存器蒿赢。

獨立性方面:進程有自己獨立的地址空間,而線程沒有渣触,線程必須依賴于進程而存在羡棵。

線程與進程總結(jié):

進程和線程

概述:

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

線程是進程的一個實體,是CPU調(diào)度和分派的基本單位,它是比進程更小的能獨立運行的基本單位。線程自己基本上不擁有系統(tǒng)資源,只擁有一點在運行中必不可少的資源(如程序計數(shù)器,一組寄存器和棧),但是它可與同屬一個進程的其他的線程共享進程所擁有的全部資源.

一個線程可以創(chuàng)建和撤銷另一個線程;同一個進程中的多個線程之間可以并發(fā)執(zhí)行.

相對進程而言嗅钻,線程是一個更加接近于執(zhí)行體的概念皂冰,它可以與同進程中的其他線程共享數(shù)據(jù)店展,但擁有自己的棧空間秃流,擁有獨立的執(zhí)行序列赂蕴。

在串行程序基礎(chǔ)上引入線程和進程是為了提高程序的并發(fā)度,從而提高程序運行效率和響應(yīng)時間舶胀。

區(qū)別:

進程和線程的主要差別在于它們是不同的操作系統(tǒng)資源管理方式概说。進程有獨立的地址空間,一個進程崩潰后嚣伐,在保護模式下不會對其它進程產(chǎn)生影響糖赔,而線程只是一個進程中的不同執(zhí)行路徑。線程有自己的堆棧和局部變量轩端,但線程之間沒有單獨的地址空間放典,一個線程死掉就等于整個進程死掉,所以多進程的程序要比多線程的程序健壯船万,但在進程切換時刻撒,耗費資源較大,效率要差一些耿导。但對于一些要求同時進行并且又要共享某些變量的并發(fā)操作声怔,只能用線程,不能用進程舱呻。

1) 簡而言之,一個程序至少有一個進程,一個進程至少有一個線程.

2) 線程的劃分尺度小于進程醋火,使得多線程程序的并發(fā)性高。

3) 另外箱吕,進程在執(zhí)行過程中擁有獨立的內(nèi)存單元芥驳,而多個線程共享內(nèi)存,從而極大地提高了程序的運行效率茬高。

4) 線程在執(zhí)行過程中與進程還是有區(qū)別的兆旬。每個獨立的線程有一個程序運行的入口、順序執(zhí)行序列和程序的出口怎栽。但是線程不能夠獨立執(zhí)行丽猬,必須依存在應(yīng)用程序中,由應(yīng)用程序提供多個線程執(zhí)行控制熏瞄。

5) 從邏輯角度來看脚祟,多線程的意義在于一個應(yīng)用程序中,有多個執(zhí)行部分可以同時執(zhí)行强饮。但操作系統(tǒng)并沒有將多個線程看做多個獨立的應(yīng)用由桌,來實現(xiàn)進程的調(diào)度和管理以及資源分配。這就是進程和線程的重要區(qū)別。

優(yōu)缺點:

線程和進程在使用上各有優(yōu)缺點:線程執(zhí)行開銷小行您,但不利于資源的管理和保護铭乾;而進程正相反。同時邑雅,線程適合于在SMP機器上運行片橡,而進程則可以跨機器遷移妈经。

多進程淮野,多線程

概述:

進程就是一個程序運行的時候被CPU抽象出來的,一個程序運行后被抽象為一個進程吹泡,但是線程是從一個進程里面分割出來的骤星,由于CPU處理進程的時候是采用時間片輪轉(zhuǎn)的方式,所以要把一個大個進程給分割成多個線程爆哑,例如:網(wǎng)際快車中文件分成100部分 10個線程 文件就被分成了10份來同時下載 1-10 占一個線程 11-20占一個線程,依次類推,線程越多,文件就被分的越多,同時下載 當然速度也就越快

進程是程序在計算機上的一次執(zhí)行活動洞难。當你運行一個程序,你就啟動了一個進程揭朝。顯然队贱,程序只是一組指令的有序集合,它本身沒有任何運行的含義潭袱,只是一個靜態(tài)實體柱嫌。而進程則不同,它是程序在某個數(shù)據(jù)集上的執(zhí)行屯换,是一個動態(tài)實體编丘。它因創(chuàng)建而產(chǎn)生,因調(diào)度而運行彤悔,因等待資源或事件而被處于等待狀態(tài)嘉抓,因完成任務(wù)而被撤消,反映了一個程序在一定的數(shù)據(jù)集上運行的全部動態(tài)過程晕窑。進程是操作系統(tǒng)分配資源的單位抑片。在Windows下,進程又被細化為線程杨赤,也就是一個進程下有多個能獨立運行的更小的單位敞斋。線程(Thread)是進程的一個實體,是CPU調(diào)度和分派的基本單位望拖。線程不能夠獨立執(zhí)行渺尘,必須依存在應(yīng)用程序中,由應(yīng)用程序提供多個線程執(zhí)行控制说敏。

線程和進程的關(guān)系是:線程是屬于進程的鸥跟,線程運行在進程空間內(nèi),同一進程所產(chǎn)生的線程共享同一內(nèi)存空間,當進程退出時該進程所產(chǎn)生的線程都會被強制退出并清除医咨。線程可與屬于同一進程的其它線程共享進程所擁有的全部資源枫匾,但是其本身基本上不擁有系統(tǒng)資源,只擁有一點在運行中必不可少的信息(如程序計數(shù)器拟淮、一組寄存器和棧)干茉。

在同一個時間里,同一個計算機系統(tǒng)中如果允許兩個或兩個以上的進程處于運行狀態(tài)很泊,這便是多任務(wù)〗浅妫現(xiàn)代的操作系統(tǒng)幾乎都是多任務(wù)操作系統(tǒng),能夠同時管理多個進程的運行委造。 多任務(wù)帶來的好處是明顯的戳鹅,比如你可以邊聽mp3邊上網(wǎng),與此同時甚至可以將下載的文檔打印出來昏兆,而這些任務(wù)之間絲毫不會相互干擾枫虏。那么這里就涉及到并行的問題,俗話說爬虱,一心不能二用隶债,這對計算機也一樣,原則上一個CPU只能分配給一個進程跑筝,以便運行這個進程死讹。我們通常使用的計算機中只有一個CPU,也就是說只有一顆心继蜡,要讓它一心多用回俐,同時運行多個進程,就必須使用并發(fā)技術(shù)稀并。實現(xiàn)并發(fā)技術(shù)相當復(fù)雜仅颇,最容易理解的是“時間片輪轉(zhuǎn)進程調(diào)度算法”,它的思想簡單介紹如下:**在操作系統(tǒng)的管理下碘举,所有正在運行的進程輪流使用CPU忘瓦,每個進程允許占用CPU的時間非常短(比如10毫秒),這樣用戶根本感覺不出來CPU是在輪流為多個進程服務(wù)引颈,就好象所有的進程都在不間斷地運行一樣耕皮。但實際上在任何一個時間內(nèi)有且僅有一個進程占有CPU**。

如果一臺計算機有多個CPU蝙场,情況就不同了凌停,如果進程數(shù)小于CPU數(shù),則不同的進程可以分配給不同的CPU來運行售滤,這樣罚拟,多個進程就是真正同時運行的台诗,這便是并行。但如果進程數(shù)大于CPU數(shù)赐俗,則仍然需要使用并發(fā)技術(shù)拉队。

在Windows中,進行CPU分配是以線程為單位的阻逮,一個進程可能由多個線程組成粱快,這時情況更加復(fù)雜,但簡單地說叔扼,有如下關(guān)系:

總線程數(shù)<= CPU數(shù)量:并行運行

總線程數(shù)> CPU數(shù)量:并發(fā)運行

并行和并發(fā)的區(qū)別

你吃飯吃到一半事哭,電話來了,你一直到吃完了以后才去接币励,這就說明你不支持并發(fā)也不支持并行慷蠕。

你吃飯吃到一半珊拼,電話來了食呻,你停了下來接了電話,接完后繼續(xù)吃飯澎现,這說明你支持并發(fā)仅胞。

你吃飯吃到一半,電話來了剑辫,你一邊打電話一邊吃飯干旧,這說明你支持并行。

并發(fā)的關(guān)鍵是你有處理多個任務(wù)的能力妹蔽,不一定要同時椎眯。并行的關(guān)鍵是你有同時處理多個任務(wù)的能力。它們最關(guān)鍵的點就是:是否是『同時』胳岂。)

并行運行的效率顯然高于并發(fā)運行编整,所以在多CPU的計算機中,多任務(wù)的效率比較高乳丰。但是掌测,如果在多CPU計算機中只運行一個進程(線程),就不能發(fā)揮多CPU的優(yōu)勢产园。

多任務(wù)操作系統(tǒng)(如Windows)的基本原理是:操作系統(tǒng)將CPU的時間片分配給多個線程,每個線程在操作系統(tǒng)指定的時間片內(nèi)完成(注意,這里的多個線程是分屬于不同進程的).操作系統(tǒng)不斷的從一個線程的執(zhí)行切換到另一個線程的執(zhí)行,如此往復(fù),宏觀上看來,就好像是多個線程在一起執(zhí)行.由于這多個線程分屬于不同的進程,因此在我們看來,就好像是多個進程在同時執(zhí)行,這樣就實現(xiàn)了多任務(wù).

分類

根據(jù)進程與線程的設(shè)置汞斧,操作系統(tǒng)大致分為如下類型:

(1) 單進程、單線程什燕,MS-DOS大致是這種操作系統(tǒng)粘勒;

(2) 多進程、單線程屎即,多數(shù)UNIX(及類UNIX的LINUX)是這種操作系統(tǒng)庙睡;

(3) 多進程、多線程,Win32(Windows NT/2000/XP等)埃撵、Solaris 2.x和OS/2都是這種操作系統(tǒng)赵颅;

(4) 單進程、多線程暂刘,VxWorks是這種操作系統(tǒng)饺谬。

引入線程帶來的主要好處:

(1) 在進程內(nèi)創(chuàng)建、終止線程比創(chuàng)建谣拣、終止進程要快募寨;

(2) 同一進程內(nèi)的線程間切換比進程間的切換要快,尤其是用戶級線程間的切換。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末森缠,一起剝皮案震驚了整個濱河市拔鹰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌贵涵,老刑警劉巖列肢,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異宾茂,居然都是意外死亡瓷马,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門跨晴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來欧聘,“玉大人,你說我怎么就攤上這事端盆』持瑁” “怎么了?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵焕妙,是天一觀的道長蒋伦。 經(jīng)常有香客問我,道長访敌,這世上最難降的妖魔是什么凉敲? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮寺旺,結(jié)果婚禮上爷抓,老公的妹妹穿的比我還像新娘。我一直安慰自己阻塑,他們只是感情好蓝撇,可當我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著陈莽,像睡著了一般渤昌。 火紅的嫁衣襯著肌膚如雪虽抄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天独柑,我揣著相機與錄音迈窟,去河邊找鬼。 笑死忌栅,一個胖子當著我的面吹牛车酣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播索绪,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼湖员,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了瑞驱?” 一聲冷哼從身側(cè)響起娘摔,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎唤反,沒想到半個月后凳寺,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡拴袭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年读第,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拥刻。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖父泳,靈堂內(nèi)的尸體忽然破棺而出般哼,到底是詐尸還是另有隱情,我是刑警寧澤惠窄,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布蒸眠,位于F島的核電站,受9級特大地震影響杆融,放射性物質(zhì)發(fā)生泄漏楞卡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一脾歇、第九天 我趴在偏房一處隱蔽的房頂上張望蒋腮。 院中可真熱鬧,春花似錦藕各、人聲如沸池摧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽作彤。三九已至膘魄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間竭讳,已是汗流浹背创葡。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留绢慢,地道東北人蹈丸。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像呐芥,于是被迫代替她去往敵國和親逻杖。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,554評論 2 349

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