第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

goroutine 到底是什么?

goroutine 到底是什么?

Go
紅糖糍粑 2021-09-10 17:10:39
我讀過的教程和文檔都說 goroutines 是“不完全是線程”或“輕量級線程”,但通常可以將它們視為它們自己的單獨(dú)線程。那么……它們到底是什么?
查看完整描述

3 回答

?
明月笑刀無情

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個贊

goroutine 與典型的 OS 線程的區(qū)別有以下幾點(diǎn):

  • 用戶模式調(diào)度。當(dāng)一個 goroutine 被阻塞(比如在網(wǎng)絡(luò)上等待)時,Go 運(yùn)行時會尋找另一個可以運(yùn)行的 goroutine。這不需要進(jìn)入和退出內(nèi)核模式,也不需要操作系統(tǒng)內(nèi)核的調(diào)度程序運(yùn)行。

  • 沒有唯一的用戶模式調(diào)度:使用多個內(nèi)核,Go會啟動多個操作系統(tǒng)線程和運(yùn)行夠程上所有的人,潛在的移動操作系統(tǒng)線程之間的goroutine把一切都很忙。如果你聽說 goroutines 被“多路復(fù)用”到操作系統(tǒng)線程上,那就是它的意思。

  • 它們的開始成本很低。堆棧開始很小,只有幾千字節(jié),并根據(jù)需要增長,無論操作系統(tǒng)是否使用虛擬內(nèi)存過量使用。

  • 它們與語言緊密相連;除了go語句本身,還有用于協(xié)調(diào) goroutine 的通道類型和操作和select語句。

  • 它們缺乏一些操作系統(tǒng)線程功能:目前,Go 的調(diào)度程序不能保證公平性,并且只有非常有限的搶占(for{}永遠(yuǎn)不會切換空循環(huán))。

它們與許多其他術(shù)語密切相關(guān):

  • 纖維,一個與用戶模式調(diào)度線程相關(guān)的術(shù)語

  • 綠色線程,另一個用于指代用戶模式調(diào)度線程的術(shù)語

  • 協(xié)程,指的是可以在其代碼中的任意點(diǎn)相互讓出控制權(quán)的例程

  • 事件驅(qū)動架構(gòu),它可能會在等待網(wǎng)絡(luò) I/O 等異步事件時切換到其他任務(wù),但可能不會呈現(xiàn)類似線程的接口(例如,它們可能會使用回調(diào)函數(shù))

  • M:N 混合線程,涉及內(nèi)核和用戶模式線程,并且可能涉及跨操作系統(tǒng)線程的用戶模式線程遷移。


查看完整回答
反對 回復(fù) 2021-09-10
?
桃花長相依

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個贊

當(dāng)有兩個 CPU 時,goroutine(s) 作為真正的線程運(yùn)行。當(dāng)具有單個 CPU 時,goroutine 作為單線程的協(xié)程運(yùn)行,這些線程在切換上下文時運(yùn)行。goroutine 不會粘住固定線程。所以它不像線程ID那樣標(biāo)識符。如果你想把 goroutine 作為 OS 線程,你需要使用runtime.LockOSThread().


查看完整回答
反對 回復(fù) 2021-09-10
?
拉風(fēng)的咖菲貓

TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個贊

Morsing 的這篇關(guān)于 Go 調(diào)度器的博客文章很好,因?yàn)樗腥切?、正方形和圓形的圖片。

從調(diào)度程序的角度來看:

goroutine 包括堆棧、指令指針和其他對調(diào)度很重要的信息。


查看完整回答
反對 回復(fù) 2021-09-10
  • 3 回答
  • 0 關(guān)注
  • 228 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號