線程

相對(duì)于進(jìn)程而言朗恳,線程只有線程控制快蜜自,沒有所必須的運(yùn)行資源谤专,它的運(yùn)行資源共享進(jìn)程的運(yùn)行資源

1.線程控制塊信息

? ? (1)線程標(biāo)識(shí)符

? ? ? ? ? ? 為每個(gè)現(xiàn)場(chǎng)賦予唯一的線程標(biāo)識(shí)符

? ? ?(2)一組寄存器

? ? ? ? ? ? ? ?包括程序計(jì)數(shù)器PC、狀態(tài)寄存器和通用寄存器的內(nèi)容

? ? ? (3)線程運(yùn)行狀態(tài)

? ? ? ? ? ? ? ? 用于描述線程正處于何種運(yùn)行狀態(tài)

? ? ? ?(4)優(yōu)先級(jí)別

? ? ? ? ? ? ? ? 描述線程執(zhí)行的有線程度

? ? ? ? (5)線程專有存儲(chǔ)區(qū)

? ? ? ? ? ? ? ? 用于線程切換時(shí)存放現(xiàn)場(chǎng)保護(hù)信息和與該線程相關(guān)的統(tǒng)計(jì)信息等

? ? ? ? (6)信號(hào)屏蔽

? ? ? ? ? ? ? ? ?即對(duì)某些信號(hào)加以屏蔽

? ? ? ? ?(7)堆棧指針

2.線程狀態(tài)

? ? ? ? ? (1)創(chuàng)建狀態(tài)

? ? ? ? ? ? ? ? ? ?創(chuàng)建完線程控制塊,但是還沒有交給系統(tǒng)調(diào)度

? ? ? ? ? (2)就緒狀態(tài)

? ? ? ? ? ? ? ? ? ? 將線程控制快提交給線程調(diào)度器怠噪,具備執(zhí)行條件,但是還沒有活去到CPU時(shí)間片段

? ? ? ? ? (3)運(yùn)行狀態(tài)

? ? ? ? ? ? ? ? ? ? 線程獲取到CPU時(shí)間片段

? ? ? ? ? ?(4)阻塞狀態(tài)

? ? ? ? ? ? ? ? ? ? 線程在執(zhí)行中因某時(shí)間受到阻而處于暫停狀態(tài)杜跷,例如I/O操作傍念,等待操作

? ? ? ? ? ?(5)終止?fàn)顟B(tài)

? ? ? ? ? ? ? ? ? ? 該線程所在任務(wù)已經(jīng)執(zhí)行完成

3.線程的實(shí)現(xiàn)方式

? ? ? ? ? ? (1)內(nèi)核級(jí)線程

? ? ? ? ? ? ? ? ? ? ?在內(nèi)核空間和用戶空間同時(shí)存在線程控制塊,管理和調(diào)度均在內(nèi)核進(jìn)行

? ? ? ? ? ? ? ? ? ? 優(yōu)勢(shì):1.在多處理器系統(tǒng)中葛闷,內(nèi)核能夠同時(shí)調(diào)度同一進(jìn)程的多個(gè)線程并行執(zhí)行憋槐。2.如果進(jìn)程中的一個(gè)線程被阻塞了,內(nèi)核可以調(diào)度該進(jìn)程中的其他現(xiàn)場(chǎng)占有處理器運(yùn)行淑趾,也可以運(yùn)行其他進(jìn)程中的現(xiàn)場(chǎng)阳仔。3.內(nèi)核支持線程具有很小的數(shù)據(jù)結(jié)構(gòu)和堆棧,線程的切換比較快扣泊,切換開銷小近范。4.內(nèi)核本身也可以采用多線程技術(shù),可以提高系統(tǒng)的執(zhí)行速度和效率延蟹。

? ? ? ? ? ? ? ? ? ? 缺點(diǎn):對(duì)于用戶級(jí)線程而言评矩,其模式切換的開銷比較大,在同一個(gè)進(jìn)程中阱飘,從一個(gè)線程切換到另一個(gè)線程斥杜,需要從用戶態(tài)轉(zhuǎn)到核心態(tài)進(jìn)行,這是因?yàn)橛脩暨M(jìn)程中的線程運(yùn)行在用戶態(tài)沥匈,而現(xiàn)場(chǎng)調(diào)度和管理是在內(nèi)核實(shí)現(xiàn)的果录,系統(tǒng)開銷較大

? ? ? ? ? ? (2)用戶級(jí)線程

? ? ? ? ? ? ? ? ? ? 只有用戶空間存在線程控制塊,調(diào)度和管理均在用戶空間咐熙,對(duì)線程的創(chuàng)建弱恒、銷毀、通信與同步等功能都無需內(nèi)核支持棋恼,即用戶級(jí)線程是與內(nèi)核無關(guān)的返弹,其調(diào)度是以進(jìn)程為單位的锈玉,進(jìn)程進(jìn)行線程執(zhí)行

? ? ? ? ? ? ? ? ? 優(yōu)點(diǎn):1.線程切換不需要轉(zhuǎn)換到內(nèi)核空間。對(duì)一個(gè)進(jìn)程而言义起,其所有線程的管理數(shù)據(jù)結(jié)構(gòu)均在該進(jìn)程的用戶空間拉背,管理線程切換的線程庫(kù)也在用戶地址空間運(yùn)行, 因此進(jìn)程不必切換到內(nèi)核方式做線程管理默终,從而節(jié)省了模式切換的開銷椅棺。2.調(diào)度算法可以是進(jìn)程專用的,在不干擾操作系統(tǒng)調(diào)度的情況下齐蔽,不同的進(jìn)程可以根據(jù)自身需要選擇不同的調(diào)度算法两疚,對(duì)自己的線程進(jìn)行管理和調(diào)度,而與操作系統(tǒng)的低級(jí)調(diào)度算法是無關(guān)的含滴。3.用戶級(jí)線程的實(shí)現(xiàn)是與操作系統(tǒng)無關(guān)的诱渤,因?yàn)閷?duì)于線程管理的代碼是屬于用戶程序的一部分,所有的應(yīng)用程序都可以對(duì)之進(jìn)行共享谈况,因此勺美,用戶級(jí)線程甚至可以在不支持線程機(jī)制的操作系統(tǒng)上實(shí)現(xiàn)

? ? ? ? ? ? ? ? ? 缺點(diǎn):1.系統(tǒng)調(diào)用的阻塞問題,在基于進(jìn)程機(jī)制的操作系統(tǒng)中碑韵,大多數(shù)系統(tǒng)調(diào)用將使進(jìn)程阻塞赡茸,因此,當(dāng)一個(gè)線程執(zhí)行系統(tǒng)調(diào)用時(shí)祝闻,不僅該線程被阻塞占卧,而且,進(jìn)程內(nèi)的所有線程會(huì)阻塞治筒。而在內(nèi)核支持的線程方式中。則進(jìn)程中的其他線程依然可以運(yùn)行舷蒲。2.在單純的用戶級(jí)線程實(shí)現(xiàn)方式中耸袜,多線程應(yīng)用不能利用多處理機(jī)進(jìn)行多重處理的優(yōu)點(diǎn),內(nèi)核每次分配給一個(gè)進(jìn)程的僅有一個(gè)CPU牲平,因此堤框,進(jìn)程中僅有一個(gè)線程能執(zhí)行,在該線程放棄CPU之前纵柿,其他線程只能等待? ? ? ?

? ? ? ? ? ? ? (3)組合方式

? ? ? ? ? ? ? ? ? ? ? ? 多對(duì)一模型:將用戶線程映射到一個(gè)內(nèi)核控制線程蜈抓,僅當(dāng)用戶線程需要訪問內(nèi)核時(shí),才將其映射到一個(gè)內(nèi)核控制線程上沟使,但每次只允許一個(gè)線程進(jìn)行映射。優(yōu)點(diǎn):線程管理開銷小渊跋,效率高腊嗡。缺點(diǎn):一個(gè)線程在訪問內(nèi)核時(shí)發(fā)生阻塞着倾,則整個(gè)進(jìn)程都會(huì)被阻塞,任一時(shí)刻只有一個(gè)線程能夠訪問內(nèi)核燕少,多個(gè)線程不能同時(shí)在多個(gè)處理機(jī)上運(yùn)行

? ? ? ? ? ? ? ? ? ? ? ? 一對(duì)一模型:將一個(gè)用戶線程映射到一個(gè)內(nèi)核控制線程卡者。優(yōu)點(diǎn):一個(gè)線程阻塞可以調(diào)度另一個(gè)線程運(yùn)行,并發(fā)功能比較強(qiáng)客们,在多處理機(jī)上可以多線程并行的運(yùn)行在多處理器上崇决。缺點(diǎn):每創(chuàng)建一個(gè)用戶級(jí)線程相應(yīng)的 需要?jiǎng)?chuàng)建一個(gè)內(nèi)核控制線程,開銷較大

? ? ? ? ? ? ? ? ? ? ? ? 多對(duì)多模型:即將許多用戶線程映射到同樣數(shù)量或更少數(shù)量的內(nèi)核線程上底挫,他結(jié)合了上面兩個(gè)模型的優(yōu)點(diǎn)恒傻,他可以像一對(duì)一模型那樣一個(gè)進(jìn)程的多個(gè)線程并行的運(yùn)行在多處理機(jī)系統(tǒng)上,也可以像多對(duì)一模型那樣減少線程的管理開銷和提高效率

? ??????????????????

? ??????????????????

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末凄敢,一起剝皮案震驚了整個(gè)濱河市碌冶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌涝缝,老刑警劉巖扑庞,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異拒逮,居然都是意外死亡罐氨,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門滩援,熙熙樓的掌柜王于貴愁眉苦臉地迎上來栅隐,“玉大人,你說我怎么就攤上這事玩徊∽馇模” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵恩袱,是天一觀的道長(zhǎng)泣棋。 經(jīng)常有香客問我,道長(zhǎng)畔塔,這世上最難降的妖魔是什么潭辈? 我笑而不...
    開封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮澈吨,結(jié)果婚禮上把敢,老公的妹妹穿的比我還像新娘。我一直安慰自己谅辣,他們只是感情好修赞,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著桑阶,像睡著了一般榔组。 火紅的嫁衣襯著肌膚如雪熙尉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天搓扯,我揣著相機(jī)與錄音检痰,去河邊找鬼。 笑死锨推,一個(gè)胖子當(dāng)著我的面吹牛铅歼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播换可,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼椎椰,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了沾鳄?” 一聲冷哼從身側(cè)響起慨飘,我...
    開封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎译荞,沒想到半個(gè)月后瓤的,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吞歼,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年圈膏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片篙骡。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡稽坤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出糯俗,到底是詐尸還是另有隱情尿褪,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布得湘,位于F島的核電站杖玲,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏忽刽。R本人自食惡果不足惜天揖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一夺欲、第九天 我趴在偏房一處隱蔽的房頂上張望跪帝。 院中可真熱鬧,春花似錦些阅、人聲如沸伞剑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽黎泣。三九已至恕刘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間抒倚,已是汗流浹背褐着。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留托呕,地道東北人含蓉。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像项郊,于是被迫代替她去往敵國(guó)和親馅扣。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

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