操作系統(tǒng)--進(jìn)程和線程击罪、協(xié)程

操作系統(tǒng)(OS)是配置在計算機(jī)硬件上的第一層軟件,是對硬件系統(tǒng)的首次擴(kuò)充贪薪。其主要作用是管理好這些設(shè)備媳禁,提高它們的利用率和系統(tǒng)的吞吐量,并為用戶和應(yīng)用程序提供一個簡單的接口画切,便于用戶使用竣稽。

進(jìn)程的定義:

1)進(jìn)程是程序的一次執(zhí)行

2)進(jìn)程是一個程序及其數(shù)據(jù)在處理機(jī)上順序執(zhí)行時所發(fā)生的活動

3)進(jìn)程是具有獨立功能的程序在一個數(shù)據(jù)集合上運行的過程,它是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個獨立單位霍弹。


線程的定義:

線程是操作系統(tǒng)可識別的最小執(zhí)行和調(diào)度單位丧枪。如果把進(jìn)程理解為在邏輯上操作系統(tǒng)所完成的任務(wù),那么線程表示完成該任務(wù)的許多可能的子任務(wù)之一庞萍。例如拧烦,假設(shè)用戶啟動了一個窗口中的數(shù)據(jù)庫應(yīng)用程序,操作系統(tǒng)就將對數(shù)據(jù)庫的調(diào)用表示為一個進(jìn)程钝计。

假設(shè)用戶要從數(shù)據(jù)庫中產(chǎn)生一份工資單報表恋博,并傳到一個文件中,這是一個子任務(wù)私恬;在產(chǎn)生工資單報表的過程中债沮,用戶又可以輸人數(shù)據(jù)庫查詢請求,這又是一個子任務(wù)本鸣。這樣疫衩,操作系統(tǒng)則把每一個請求――工資單報表和新輸人的數(shù)據(jù)查詢表示為數(shù)據(jù)庫進(jìn)程中的獨立的線程。

線程可以在處理器上獨立調(diào)度執(zhí)行荣德,這樣闷煤,在多處理器環(huán)境下就允許幾個線程各自在單獨處理器上進(jìn)行童芹。操作系統(tǒng)提供線程就是為了方便而有效地實現(xiàn)這種并發(fā)性

引入線程的好處

(1)易于調(diào)度。
(2)提高并發(fā)性鲤拿。通過線程可方便有效地實現(xiàn)并發(fā)性假褪。進(jìn)程可創(chuàng)建多個線程來執(zhí)行同一程序的不同部分。
(3)開銷少近顷。創(chuàng)建線程比創(chuàng)建進(jìn)程要快生音,所需開銷很少。窒升。
(4)利于充分發(fā)揮多處理器的功能缀遍。通過創(chuàng)建多線程進(jìn)程(即一個進(jìn)程可具有兩個或更多個線程),每個線程在一個處理器上運行饱须,從而實現(xiàn)應(yīng)用程序的并發(fā)性域醇,使每個處理器都得到充分運行。


進(jìn)程與線程:

1)進(jìn)程是基本資源分配單位冤寿,而線程是基本調(diào)度和執(zhí)行單位歹苦;線程不擁有系統(tǒng)資源青伤,但線程可以訪問所屬進(jìn)程的資源督怜。

2)一個線程只能屬于一個進(jìn)程米愿,而一個進(jìn)程可以有多個線程精居,但至少有一個線程讲仰。

3)進(jìn)程之間可以并發(fā)執(zhí)行蚌斩,同一進(jìn)程內(nèi)的多個線程也可以并發(fā)執(zhí)行柬赐。

4)創(chuàng)建和撤銷進(jìn)程的系統(tǒng)開銷遠(yuǎn)大于創(chuàng)建和撤銷線程的系統(tǒng)開銷议蟆。

5)資源分配給進(jìn)程憨降,同一進(jìn)程的所有線程共享該進(jìn)程的所有資源与殃。 同一進(jìn)程中的多個線程共享代碼段(代碼和常量)立帖,數(shù)據(jù)段(全局變量和靜態(tài)變量)眼溶,擴(kuò)展段(堆存儲)。但是每個線程擁有自己的棧段晓勇,棧段又叫運行時段堂飞,用來存放所有局部變量和臨時變量。

注意:

不同進(jìn)程的線程間可以利用消息通信的辦法實現(xiàn)同步绑咱。
數(shù)據(jù)段中(全局變量和靜態(tài)變量)是指在開辟進(jìn)程時創(chuàng)建的, 不一定是指類中的全局和靜態(tài)變量绰筛。


協(xié)程:

協(xié)程是一種用戶態(tài)的輕量級線程,又稱微線程描融,英文名Coroutine铝噩,本質(zhì)上還是一個線程, 擁有線程的共享代碼段(代碼和常量),數(shù)據(jù)段(全局變量和靜態(tài)變量)窿克,擴(kuò)展段(堆存儲)骏庸。協(xié)程的調(diào)度完全由用戶控制毛甲。人們通常將協(xié)程和子程序(函數(shù))比較著理解。

子程序調(diào)用總是一個入口敞恋,一次返回丽啡,一旦退出即完成了子程序的執(zhí)行。
協(xié)程的起始處是第一個入口點硬猫,在協(xié)程里补箍,返回點之后是接下來的入口點。在python中啸蜜,協(xié)程可以通過yield來調(diào)用其它協(xié)程坑雅。通過yield方式轉(zhuǎn)移執(zhí)行權(quán)的協(xié)程之間不是調(diào)用者與被調(diào)用者的關(guān)系,而是彼此對稱衬横、平等的裹粤,通過相互協(xié)作共同完成任務(wù)。其運行的大致流程如下:

  • 第一步蜂林,協(xié)程A開始執(zhí)行遥诉。
  • 第二步,協(xié)程A執(zhí)行到一半噪叙,進(jìn)入暫停矮锈,通過yield命令將執(zhí)行權(quán)轉(zhuǎn)移到協(xié)程B。
  • 第三步睁蕾,(一段時間后)協(xié)程B交還執(zhí)行權(quán)苞笨。
  • 第四步,協(xié)程A恢復(fù)執(zhí)行子眶。1234

協(xié)程的特點在于是一個線程執(zhí)行瀑凝,與多線程相比,其優(yōu)勢體現(xiàn)在:

協(xié)程的執(zhí)行效率非常高臭杰。因為子程序切換不是線程切換粤咪,而是由程序自身控制,因此渴杆,沒有線程切換的開銷寥枝,和多線程比,線程數(shù)量越多将塑,協(xié)程的性能優(yōu)勢就越明顯脉顿。
由于是程序自身控制, 所以協(xié)程不需要多線程的鎖機(jī)制。在協(xié)程中控制共享資源不加鎖点寥,只需要判斷狀態(tài)就好了艾疟。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蔽莱,更是在濱河造成了極大的恐慌弟疆,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盗冷,死亡現(xiàn)場離奇詭異怠苔,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)仪糖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進(jìn)店門柑司,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人锅劝,你說我怎么就攤上這事攒驰。” “怎么了故爵?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵玻粪,是天一觀的道長。 經(jīng)常有香客問我诬垂,道長劲室,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任结窘,我火速辦了婚禮很洋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘晦鞋。我一直安慰自己蹲缠,他們只是感情好棺克,可當(dāng)我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布悠垛。 她就那樣靜靜地躺著,像睡著了一般娜谊。 火紅的嫁衣襯著肌膚如雪确买。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天纱皆,我揣著相機(jī)與錄音湾趾,去河邊找鬼。 笑死派草,一個胖子當(dāng)著我的面吹牛搀缠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播近迁,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼艺普,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起歧譬,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤岸浑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后瑰步,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體矢洲,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年缩焦,在試婚紗的時候發(fā)現(xiàn)自己被綠了读虏。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡袁滥,死狀恐怖掘譬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情呻拌,我是刑警寧澤葱轩,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站藐握,受9級特大地震影響靴拱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜猾普,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一袜炕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧初家,春花似錦偎窘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至掖肋,卻和暖如春仆葡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背志笼。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工沿盅, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人纫溃。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓腰涧,卻偏偏與公主長得像,于是被迫代替她去往敵國和親紊浩。 傳聞我的和親對象是個殘疾皇子窖铡,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,969評論 2 355

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