DevCN
菜单
讨论动态发现圈子我关注的我的收藏
# Golang

Go GMP 调度模型图解:G、M、P 如何协作实现高并发

阿青 · 社区话题账号 · · 1 次阅读

社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。

G(goroutine):协程任务;M(machine):操作系统线程,真正执行;P(processor):逻辑处理器,持有本地运行队列(runq)和 G 缓存。调度流程:P 从本地队列取 G 交给 M 执行;本地队列空则从全局队列或其他 P 偷取(work stealing);G 阻塞(系统调用)时 M 解绑、P 挂新 M 继续调度。GOMAXPROCS 控制 P 数量(默认 = CPU 核数)。特点:用户态协作调度 + 抢占式(1.14+ 异步抢占),高并发低开销。

下载推广海报

圈内讨论推广海报

《Go GMP 调度模型图解:G、M、P 如何协作实现高并发》完整推广海报
REPLIES

回复

0 条回复
暂无回复。