Golang 上下文切換

WBOY
發布: 2024-02-06 09:10:08
轉載
745 人瀏覽過

Golang 上下文切换

問題內容

我有一個非常基本的疑問: 作業系統調度程序上下文可以在映射到核心級的用戶級執行緒之間切換嗎?

假設 goscheduler 在核心執行緒上調度了一個 goroutine A。現在 goroutine A 進行 sysblock 調用,誰先進行上下文切換:OS 還是 go 調度程式?


正確答案


Go 調度程式管理 goroutine,這些 goroutine 被重複使用到作業系統層級執行緒上。 Go 調度器可以有效率地執行 Goroutine 之間的上下文切換,例如當 Goroutine 進行阻塞系統呼叫時,而無需涉及 OS 調度器。但是,需要注意的是,由於時間分片等因素,作業系統排程器可能會獨立中斷並執行上下文切換。因此,從Go程式的角度可能無法準確地確定上下文切換的確切時機以及作業系統排程器的參與。

進一步閱讀:

golang原始碼中的proc.go

Go 調度程式:實作輕量級並發語言

#

以上是Golang 上下文切換的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!