国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux 線程的概念與實(shí)現(xiàn)方式

這篇具有很好參考價(jià)值的文章主要介紹了Linux 線程的概念與實(shí)現(xiàn)方式。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、線程的概念

線程是進(jìn)程內(nèi)部的一條執(zhí)行序列或執(zhí)行路徑,一個(gè)進(jìn)程可以包含多條線程。

Linux 線程的概念與實(shí)現(xiàn)方式,Linux,linux,java,運(yùn)維

一個(gè)進(jìn)程中有兩條或多條執(zhí)行路徑的時(shí)候,它們是可以同時(shí)執(zhí)行的,也就是說(shuō),一個(gè)進(jìn)程中的多個(gè)線程是可以同時(shí)執(zhí)行的。當(dāng)我們需要一個(gè)程序同時(shí)執(zhí)行兩個(gè)不同操作的時(shí)候就引入了多線程。如果是一個(gè)單線程,只有一條路徑時(shí),不可能同時(shí)執(zhí)行兩個(gè)不同操作,因?yàn)槠渲幸粋€(gè)操作正在執(zhí)行的時(shí)候,另一個(gè)操作是阻塞狀態(tài)。

當(dāng)一個(gè)進(jìn)程有一個(gè)主線程和一個(gè)子線程的時(shí)候,主線程和子線程可以同時(shí)執(zhí)行;也可以有多個(gè)相同的子線程,這樣就是一個(gè)主線程和多個(gè)子線程同時(shí)執(zhí)行,多個(gè)子線程做的事情是一樣的;也可以有多個(gè)不同的子線程,這樣就是一個(gè)主線程和多個(gè)不同的子線程同時(shí)執(zhí)行,多個(gè)子線程做的事情不一樣。

二、線程的實(shí)現(xiàn)方式

在操作系統(tǒng)中,線程的實(shí)現(xiàn)有以下三種方式:

1.用戶級(jí)線程

在用戶空間模擬出了多條執(zhí)行路徑,但在內(nèi)核的眼里只有一條執(zhí)行路徑,這種線程的創(chuàng)建不需要操作系統(tǒng)參與并且可以創(chuàng)建很多,這種線程的缺點(diǎn)是無(wú)法進(jìn)入多個(gè)處理器,因?yàn)閮?nèi)核無(wú)法感知到每一個(gè)線程的存在,所以無(wú)法把每一個(gè)不同的線程放到不同的處理器上讓它執(zhí)行。用戶級(jí)線程的優(yōu)點(diǎn)是在用戶空間創(chuàng)建,開(kāi)銷比較小,可以創(chuàng)建很多,缺點(diǎn)是無(wú)法使用多個(gè)處理器。

2.內(nèi)核級(jí)線程

利用內(nèi)核提供的接口去創(chuàng)建線程,創(chuàng)建內(nèi)核級(jí)線程是需要操作系統(tǒng)參與的,這種線程是由操作系統(tǒng)來(lái)直接管理,內(nèi)核也可以感知到每一個(gè)線程的存在,所以內(nèi)核級(jí)線程的創(chuàng)建離不開(kāi)操作系統(tǒng)的支持,可以將其中一個(gè)線程分配到某一個(gè)處理器上將另一個(gè)線程分配到另一個(gè)處理器上,它就可以實(shí)現(xiàn)真正意義上的并行。內(nèi)核級(jí)線程的優(yōu)點(diǎn)是可以使用多個(gè)處理器,缺點(diǎn)是開(kāi)銷大。

3.組合級(jí)線程

會(huì)在內(nèi)核中創(chuàng)建多條內(nèi)核級(jí)線程,目的是為了能夠使用多個(gè)處理器,也會(huì)在用戶空間創(chuàng)建多個(gè)用戶級(jí)線程。所以,組合級(jí)線程可以利用多處理器的資源,同時(shí)可以在用戶空間創(chuàng)建多個(gè)用戶級(jí)的線程,是我們后期創(chuàng)建線程的開(kāi)銷可以變小,因?yàn)楫?dāng)線程數(shù)目超出處理器數(shù)目的情況下,最后還是只能時(shí)間片輪轉(zhuǎn)。

Linux 線程的概念與實(shí)現(xiàn)方式,Linux,linux,java,運(yùn)維

Linux 中線程的實(shí)現(xiàn):
Linux 實(shí)現(xiàn)線程的機(jī)制非常獨(dú)特。從內(nèi)核的角度來(lái)說(shuō),它并沒(méi)有線程這個(gè)概念。Linux把所有的線程都當(dāng)做進(jìn)程來(lái)實(shí)現(xiàn)。內(nèi)核并沒(méi)有準(zhǔn)備特別的調(diào)度算法或是定義特別的數(shù)據(jù)結(jié)構(gòu)來(lái)表征線程。相反,線程僅僅被視為一個(gè)與其他進(jìn)程共享某些資源的進(jìn)程。每個(gè)線程都擁有唯一隸屬于自己的task_struct(PCB),所以在內(nèi)核中,它看起來(lái)就像是一個(gè)普通的進(jìn)程(只是線程和其他一些進(jìn)程共享某些資源,如地址空間)。實(shí)際上,如果創(chuàng)建2個(gè)線程,它會(huì)消耗2個(gè)pid,對(duì)外呈現(xiàn)的是主進(jìn)程的pid,就是主線程的pid作為整個(gè)進(jìn)程的pid。

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

1.進(jìn)程:一個(gè)正在運(yùn)行的程序

進(jìn)程是資源分配的最小單位;
進(jìn)程有自己的獨(dú)立地址空間;
進(jìn)程的創(chuàng)建消耗資源大;
進(jìn)程的切換開(kāi)銷大。

2.線程:是進(jìn)程內(nèi)部的一條執(zhí)行序列或執(zhí)行路徑

線程是CPU調(diào)度的最小單位;
線程共享進(jìn)程中的地址空間;
線程的創(chuàng)建相對(duì)較小;
線程的切換開(kāi)銷相對(duì)較小。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-668973.html

到了這里,關(guān)于Linux 線程的概念與實(shí)現(xiàn)方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Linux 多線程 ( 多線程概念 )

    Linux 多線程 ( 多線程概念 )

    在一個(gè)程序里的一個(gè)執(zhí)行路線叫做線程 thread ),更準(zhǔn)確的定義為:“線程是一個(gè)進(jìn)程內(nèi)部的控制序列\(zhòng)\\"。 一切進(jìn)程至少有一個(gè)執(zhí)行線程。 線程在進(jìn)程內(nèi)部運(yùn)行,本質(zhì)上是在進(jìn)程地址空間中運(yùn)行。 在linux系統(tǒng)中,CPU看到的PCB比傳統(tǒng)的進(jìn)程更加輕量化。 透過(guò)進(jìn)程虛擬地址空間,可

    2024年02月09日
    瀏覽(35)
  • 【Linux】多線程 --- 線程概念 控制 封裝

    【Linux】多線程 --- 線程概念 控制 封裝

    從前種種,譬如昨日死。從后種種,往如今日生。 1.1 進(jìn)程資源如何進(jìn)行分配呢?(地址空間+頁(yè)表) 1. 首先我們來(lái)看一個(gè)現(xiàn)象,當(dāng)只有第一行代碼時(shí),編譯是能通過(guò)的,但會(huì)報(bào)warning,當(dāng)加了第二行代碼時(shí),編譯無(wú)法通過(guò),報(bào)error。 第一行代碼能編過(guò)的原因是權(quán)限縮小,雖然

    2024年02月03日
    瀏覽(30)
  • 操作系統(tǒng)原理 —— 線程的概念、實(shí)現(xiàn)方式、多線程模型(十)

    操作系統(tǒng)原理 —— 線程的概念、實(shí)現(xiàn)方式、多線程模型(十)

    有的進(jìn)程可能需要 “同時(shí)” 做很多事情,而傳統(tǒng)的進(jìn)程只能串行的執(zhí)行一系列的程序,為此,引入了 “線程” ,來(lái)增加并發(fā)度。 可以把線程理解為 輕量級(jí)進(jìn)程 ,線程是可以基本的 CPU 執(zhí)行單位,也是程序執(zhí)行流的最小單位,引入線程之后,不僅是進(jìn)程之間可以并發(fā),進(jìn)程

    2024年02月03日
    瀏覽(27)
  • 【Linux】多線程1——線程概念與線程控制

    【Linux】多線程1——線程概念與線程控制

    ?? 個(gè)人主頁(yè) :超人不會(huì)飛) ?? 本文收錄專欄 :《Linux》 ?? 如果本文對(duì)您有幫助,不妨 點(diǎn)贊、收藏、關(guān)注 支持博主,我們一起進(jìn)步,共同成長(zhǎng)! ??理解線程需要和進(jìn)程的概念緊密聯(lián)系。 線程是一個(gè)執(zhí)行分支,執(zhí)行粒度比進(jìn)程更細(xì),調(diào)度成本更低; 進(jìn)程是分配系統(tǒng)資源的

    2024年02月12日
    瀏覽(48)
  • Linux之線程概念

    Linux之線程概念

    目錄 一、細(xì)粒度劃分 1、堆區(qū)細(xì)粒度劃分 2、物理內(nèi)存和可執(zhí)行程序細(xì)粒度劃分 3、虛擬地址到物理地址的轉(zhuǎn)化 二、線程的概念 1、基本概念 2、線程的優(yōu)點(diǎn) 3、線程的缺點(diǎn) 4、線程異常? 5、線程用途 三、Linux下的進(jìn)程和線程 在語(yǔ)言中,我們知道,用戶自己申請(qǐng)的空間是存在于

    2024年03月10日
    瀏覽(20)
  • 【Linux】線程概念

    【Linux】線程概念

    ??? ??????? 歡迎來(lái)到小林的博客?。??????????博客主頁(yè):??林 子 ?????????博客專欄:?? Linux ?????????社區(qū) :?? 進(jìn)步學(xué)堂 ?????????歡迎關(guān)注:??點(diǎn)贊??收藏??留言 我們都知道, 進(jìn)程是操作系分配資源的基本實(shí)體。

    2024年02月08日
    瀏覽(20)
  • 【Hello Linux】線程概念

    【Hello Linux】線程概念

    作者:@小萌新 專欄:@Linux 作者簡(jiǎn)介:大二學(xué)生 希望能和大家一起進(jìn)步! 本篇博客簡(jiǎn)介:簡(jiǎn)單介紹linux中的多線程 一般在書(shū)上我們會(huì)這么介紹一個(gè)線程 線程是進(jìn)程內(nèi)部的一個(gè)執(zhí)行流 他是進(jìn)程的一部分 粒度要比進(jìn)程更加細(xì)和輕量化 那么我們應(yīng)該怎么理解呢? 下面是我的梳理

    2023年04月09日
    瀏覽(18)
  • Linux線程概念

    Linux線程概念

    目錄 一、頁(yè)表詳解 1.地址的屬性 2.頁(yè)框 3.頁(yè)表錄和頁(yè)表項(xiàng) 二、認(rèn)識(shí)線程 1.線程的概念 2.輕量級(jí)進(jìn)程 三、線程的簡(jiǎn)單控制 1.線程的創(chuàng)建 2.PID和LWP 3.線程異常 4.線程的資源 (1)共享的資源 (2)獨(dú)有的資源 5.線程的特點(diǎn) 我們雖然已經(jīng)知道了頁(yè)表可以儲(chǔ)存虛擬地址和物理地址的

    2024年02月11日
    瀏覽(15)
  • 【Linux學(xué)習(xí)】多線程——頁(yè)表詳解 | 線程概念 | 線程理解

    【Linux學(xué)習(xí)】多線程——頁(yè)表詳解 | 線程概念 | 線程理解

    ??作者:一只大喵咪1201 ??專欄:《Linux學(xué)習(xí)》 ??格言: 你只管努力,剩下的交給時(shí)間! 我們?cè)谥耙恢倍继岬巾?yè)表,知道它的作用是將虛擬地址映射到物理地址,但是它具體怎么映射的,它的結(jié)構(gòu)是什么樣的,并沒(méi)有提及過(guò)。 上訴代碼,會(huì)在運(yùn)行時(shí)報(bào)錯(cuò),原因是str指向

    2024年02月05日
    瀏覽(26)
  • 【Linux】多線程概念再理解

    【Linux】多線程概念再理解

    物理內(nèi)存的寬度為1字節(jié) 如使用c語(yǔ)言,可以定義出char類型(1字節(jié)),在虛擬地址空間上可以把1字節(jié)的單位映射到內(nèi)存中 如果認(rèn)為內(nèi)存是按照字節(jié)為單位去劃分的,實(shí)際上是不正確的 把數(shù)據(jù)從磁盤(pán)換入物理內(nèi)存,把數(shù)據(jù)從物理內(nèi)存換入磁盤(pán),是一個(gè)高頻的工作,物理磁盤(pán)是一個(gè)

    2024年02月05日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包