首页 > 后端开发 > Golang > Golang 上下文切换

Golang 上下文切换

WBOY
发布: 2024-02-06 09:10:08
转载
844 人浏览过

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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板