首页 > 其他 > 详细

[go]goroutine协程调度

时间:2020-01-09 18:24:04      阅读:74      评论:0      收藏:0      [点我收藏+]

m:n模型

Go runtime 会负责 goroutine 的生老病死,从创建到销毁整个生命周期,都一手包办。

Runtime 会在程序启动的时候,创建 M 个线程(CPU 执行调度的单位),

之后创建的 N 个 goroutine 都会依附在这 M 个线程上执行。这就是 M:N 模型:

技术分享图片

在同一时刻,一个线程上只能跑一个 goroutine。

当 goroutine 发生阻塞(例如上篇文章提到的向一个 channel 发送数据,被阻塞)时,runtime 会把当前 goroutine 调度走,让其他 goroutine 来执行。

目的就是不让一个线程闲着,榨干 CPU 的每一滴油水。

[go]goroutine协程调度

原文:https://www.cnblogs.com/iiiiiher/p/12172251.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!