久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      goroutine和coroutine的區(qū)別是什么

      區(qū)別:1、goroutine通過(guò)通道來(lái)通信,coroutine通過(guò)讓出和恢復(fù)操作來(lái)通信。2、goroutine協(xié)程間不完全同步,可以利用多核并行運(yùn)行;coroutine協(xié)程間完全同步,不會(huì)并行。3、goroutine可在多個(gè)協(xié)程/線(xiàn)程上切換;coroutine在一個(gè)線(xiàn)程中運(yùn)行。4、應(yīng)用程序長(zhǎng)時(shí)間大量地占用CPU,goroutine中用戶(hù)有權(quán)終止這個(gè)任務(wù),coroutine不行。

      goroutine和coroutine的區(qū)別是什么

      本教程操作環(huán)境:windows7系統(tǒng)、GO 1.18版本、Dell G3電腦。

      C#、Lua、Python 語(yǔ)言都支持 coroutine 特性。coroutine 與 goroutine 在名字上類(lèi)似,都可以將函數(shù)或者語(yǔ)句在獨(dú)立的環(huán)境中運(yùn)行,但是它們之間有兩點(diǎn)不同:

      • goroutine 可能發(fā)生并行執(zhí)行;

      • 但 coroutine 始終順序執(zhí)行。

      goroutines 意味著并行(或者可以以并行的方式部署),coroutines 一般來(lái)說(shuō)不是這樣的,goroutines 通過(guò)通道來(lái)通信;coroutines 通過(guò)讓出和恢復(fù)操作來(lái)通信,goroutines 比 coroutines 更強(qiáng)大,也很容易從 coroutines 的邏輯復(fù)用到 goroutines。

      狹義地說(shuō),goroutine 可能發(fā)生在多線(xiàn)程環(huán)境下,goroutine 無(wú)法控制自己獲取高優(yōu)先度支持;coroutine 始終發(fā)生在單線(xiàn)程,coroutine 程序需要主動(dòng)交出控制權(quán),宿主才能獲得控制權(quán)并將控制權(quán)交給其他 coroutine。

      goroutine 間使用 channel 通信,coroutine 使用 yield 和 resume 操作。

      goroutine 和 coroutine 的概念和運(yùn)行機(jī)制都是脫胎于早期的操作系統(tǒng)。

      coroutine 的運(yùn)行機(jī)制屬于協(xié)作式任務(wù)處理,早期的操作系統(tǒng)要求每一個(gè)應(yīng)用必須遵守操作系統(tǒng)的任務(wù)處理規(guī)則,應(yīng)用程序在不需要使用 CPU 時(shí),會(huì)主動(dòng)交出 CPU 使用權(quán)。如果開(kāi)發(fā)者無(wú)意間或者故意讓?xiě)?yīng)用程序長(zhǎng)時(shí)間占用 CPU,操作系統(tǒng)也無(wú)能為力,表現(xiàn)出來(lái)的效果就是計(jì)算機(jī)很容易失去響應(yīng)或者死機(jī)。

      goroutine 屬于搶占式任務(wù)處理,已經(jīng)和現(xiàn)有的多線(xiàn)程和多進(jìn)程任務(wù)處理非常類(lèi)似。應(yīng)用程序?qū)?CPU 的控制最終還需要由操作系統(tǒng)來(lái)管理,操作系統(tǒng)如果發(fā)現(xiàn)一個(gè)應(yīng)用程序長(zhǎng)時(shí)間大量地占用 CPU,那么用戶(hù)有權(quán)終止這個(gè)任務(wù)。

      coroutine和goroutine的區(qū)別總結(jié)

      區(qū)別一:

      • goroutine 通過(guò)通道來(lái)通信;

      • coroutine通過(guò)讓出和恢復(fù)操作來(lái)通信

      區(qū)別二:

      • goroutine協(xié)程間不完全同步,可以利用多核并行運(yùn)行,具體要看channel的設(shè)計(jì);

      • coroutine協(xié)程間完全同步,不會(huì)并行

      區(qū)別三:

      • goroutine可以在多個(gè)協(xié)程在多個(gè)線(xiàn)程上切換,既可以用到多核,又可以減少切換開(kāi)銷(xiāo)。

      • coroutine只在一個(gè)線(xiàn)程中運(yùn)行,只在一個(gè)線(xiàn)程中運(yùn)行

      區(qū)別四:

      • goroutine操作系統(tǒng)如果發(fā)現(xiàn)一個(gè)應(yīng)用程序長(zhǎng)時(shí)間大量地占用 CPU,那么用戶(hù)有權(quán)終止這個(gè)任務(wù)。

      • coroutine如果開(kāi)發(fā)者無(wú)意間或者故意讓?xiě)?yīng)用程序長(zhǎng)時(shí)間占用 CPU,操作系統(tǒng)也無(wú)能為力,表現(xiàn)出來(lái)的效果就是計(jì)算機(jī)很容易失去響應(yīng)或者死機(jī)。

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)