G:Goroutine
M: OS Thread
P:抽象概念(Processor),类似cpu的作用,将G调度到M上,进行绑定
所有的 P 都在程序启动时创建,并保存在数组中,最多有 GOMAXPROCS(可配置) 个
最开始并没有P,所以G和M绑定之后,出现了很多问题,譬如一个任务很慢时,这个时候并没有动作可以解绑,为了解决类似问题,引入了P(Processor)调度器,相当于中间加了一层
本地等待运行的 G,存的数量有限,不超过 256 个。新建 G’时,G’优先加入到 P 的本地队列,如果队列满了,则会把本地队列中一半的 G 移动到全局队列,
LRQ 不加锁,GRQ加锁
存放等待运行的 G,加锁,LRQ都满了的时候,会放入GRQ
同步调度
异步调度
本文发布于:2024-01-27 19:18:16,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063542952124.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |