欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳細(xì)介紹 進(jìn)程、線程和協(xié)程的區(qū)別

 更新時(shí)間:2017年03月28日 10:15:12   作者:維C果糖  
這篇文章主要介紹了詳細(xì)介紹 進(jìn)程、線程和協(xié)程的區(qū)別的相關(guān)資料,需要的朋友可以參考下

詳解 進(jìn)程、線程和協(xié)程的區(qū)別

首先,給出“進(jìn)程、線程和協(xié)程”的特點(diǎn):

  • 進(jìn)程:擁有自己獨(dú)立的堆和棧,既不共享堆,也不共享?xiàng)?,進(jìn)程由操作系統(tǒng)調(diào)度;
  • 線程:擁有自己獨(dú)立的棧和共享的堆,共享堆,不共享?xiàng)?,?biāo)準(zhǔn)線程由操作系統(tǒng)調(diào)度;
  • 協(xié)程:擁有自己獨(dú)立的棧和共享的堆,共享堆,不共享?xiàng)?,協(xié)程由程序員在協(xié)程的代碼里顯示調(diào)度。

接下來(lái),以一個(gè)形象的例子,進(jìn)一步講述“進(jìn)程、線程和協(xié)程”三者之間的區(qū)別:

假設(shè)有一個(gè)單核的操作系統(tǒng),系統(tǒng)上沒(méi)有其它的程序需要運(yùn)行,現(xiàn)有兩個(gè)線程 A 和 B,A 和 B 在單獨(dú)運(yùn)行時(shí)都需要 10 秒來(lái)完成自己的任務(wù),而且任務(wù)都是運(yùn)算操作,線程 A 和 B 之間沒(méi)有競(jìng)爭(zhēng)和共享數(shù)據(jù)的問(wèn)題?,F(xiàn)在讓 A 和 B 兩個(gè)線程并行,則操作系統(tǒng)會(huì)不停的在 A 和 B 兩個(gè)線程之間切換,達(dá)到一種偽并行的效果。

如果操作系統(tǒng)切換的頻率是每秒一次,切換的成本是 0.1 秒(主要是棧切換),則總共需要 20 + 19 * 0.1 = 21.9 秒;如果使用協(xié)程的方式,可以先運(yùn)行協(xié)程 A,A 結(jié)束的時(shí)候讓位給協(xié)程 B,只發(fā)生一次切換,則總共需要 20 + 1 * 0.1 = 20.1 秒。如果操作系統(tǒng)是雙核的,而且線程是標(biāo)準(zhǔn)線程,那么線程 A 和 B 可以達(dá)到真的并行,則總時(shí)間為 10 秒;而協(xié)程的方式仍然需要 20.1 秒的時(shí)間。

感謝閱讀,希望能 幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • 一文讀懂吞吐量(TPS)、QPS、并發(fā)數(shù)、響應(yīng)時(shí)間(RT)概念

    一文讀懂吞吐量(TPS)、QPS、并發(fā)數(shù)、響應(yīng)時(shí)間(RT)概念

    這篇文章主要介紹了吞吐量(TPS)、QPS、并發(fā)數(shù)、響應(yīng)時(shí)間(RT)概念,在開(kāi)發(fā)中需要先搞懂這些基礎(chǔ)知識(shí),才能更好運(yùn)用,需要的朋友可以參考下
    2020-07-07
  • git之reflog命令的使用

    git之reflog命令的使用

    git reflog 命令可以用來(lái)查看本地倉(cāng)庫(kù)的所有操作記錄,包括所有分支的提交、合并、重置等操作,本文就詳細(xì)的介紹一下如何使用,感興趣的可以了解一下
    2023-08-08
  • 圖文解析布隆過(guò)濾器大小的算法公式

    圖文解析布隆過(guò)濾器大小的算法公式

    這篇文章主要為大家介紹了布隆過(guò)濾器大小的算法公式圖文詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪<BR>
    2022-04-04
  • 使用roolup構(gòu)建你的lib(實(shí)現(xiàn)步驟)

    使用roolup構(gòu)建你的lib(實(shí)現(xiàn)步驟)

    大家都知道Rollup更加適合用于構(gòu)建lib 而 Webpack, Precel 更加適合開(kāi)發(fā)應(yīng)用。本文,將結(jié)合一個(gè)簡(jiǎn)單的例子說(shuō)說(shuō)如何使用Rollup構(gòu)建自己的lib,感興趣的朋友一起看看吧
    2021-08-08
  • 玩客云折騰記錄之編譯?ArmBian?系統(tǒng)

    玩客云折騰記錄之編譯?ArmBian?系統(tǒng)

    本文將介紹如何從零到一編譯?Armbian?系統(tǒng),適配這臺(tái)設(shè)備的代碼來(lái)源,并對(duì)玩客云小設(shè)備進(jìn)行刷機(jī)。為之后的折騰做一個(gè)前置準(zhǔn)備
    2022-02-02
  • v語(yǔ)言初體驗(yàn)小結(jié)

    v語(yǔ)言初體驗(yàn)小結(jié)

    這篇文章主要介紹了v語(yǔ)言初體驗(yàn)小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Typora?0.11.18免費(fèi)版本安裝使用教程(親測(cè)可用)

    Typora?0.11.18免費(fèi)版本安裝使用教程(親測(cè)可用)

    Typora是一款非常使用的筆記工具,對(duì)于程序員非常友好,在2021年11月23日,Typora?正式發(fā)布?1.0?版本,進(jìn)入了付費(fèi)時(shí)代,Typora免費(fèi)版本0.11.18(最后的免費(fèi)版),本文給大家分享Typora免費(fèi)獲取方法及安裝使用教程,感興趣的朋友參考下吧
    2022-07-07
  • Mercurial入門學(xué)習(xí)介紹

    Mercurial入門學(xué)習(xí)介紹

    Mercurail是一種分步式的版本控制器,和git類似,但是和傳統(tǒng)的svn有著很大的區(qū)別,需要的朋友可以參考下
    2016-08-08
  • 計(jì)算機(jī)程序設(shè)計(jì)并行計(jì)算概念及定義全面詳解

    計(jì)算機(jī)程序設(shè)計(jì)并行計(jì)算概念及定義全面詳解

    最近項(xiàng)目需要實(shí)現(xiàn)程序的并行化,剛好借著翻譯這篇帖子的機(jī)會(huì),了解和熟悉并行計(jì)算的基本概念和程序設(shè)計(jì),有需要的朋友可以借鑒參考下
    2021-11-11
  • 支付寶小程序向用戶發(fā)紅包的實(shí)現(xiàn)方法

    支付寶小程序向用戶發(fā)紅包的實(shí)現(xiàn)方法

    這篇文章主要介紹了支付寶小程序向用戶發(fā)紅包的實(shí)現(xiàn)方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11

最新評(píng)論