1 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊
免責(zé)聲明:這是對(duì)內(nèi)核和 go 運(yùn)行時(shí)中調(diào)度的粗略和不準(zhǔn)確的描述,旨在解釋概念,而不是對(duì)真實(shí)系統(tǒng)的準(zhǔn)確或詳細(xì)解釋。
您可能(或不知道),一個(gè) CPU 實(shí)際上不能同時(shí)運(yùn)行兩個(gè)程序:一個(gè) CPU 只有一個(gè)執(zhí)行線程,一次可以執(zhí)行一條指令。早期系統(tǒng)的直接后果是您無(wú)法同時(shí)運(yùn)行兩個(gè)程序,每個(gè)程序都需要(系統(tǒng)方面)一個(gè)專用線程。
當(dāng)前采用的解決方案稱為偽并行:給定多個(gè)邏輯線程(例如多個(gè)程序),系統(tǒng)將在一定時(shí)間內(nèi)執(zhí)行其中一個(gè)邏輯線程,然后切換到下一個(gè)。使用非常少的時(shí)間(以毫秒為單位),您會(huì)給人類用戶一種并行的錯(cuò)覺(jué)。此操作稱為調(diào)度。
Go 語(yǔ)言不直接使用這個(gè)系統(tǒng):它本身實(shí)現(xiàn)了一個(gè)運(yùn)行在系統(tǒng)調(diào)度器之上的調(diào)度器,并調(diào)度 goroutine 本身的執(zhí)行,繞過(guò)為每個(gè)例程使用一個(gè)真實(shí)線程的性能成本。這種類型的系統(tǒng)稱為light/green thread。
- 1 回答
- 0 關(guān)注
- 172 瀏覽
添加回答
舉報(bào)