mpg模式运行状态1
1)当前程序有三个m,如果三个m都在一个cpu运行适合年轻人的工作,就是激励人心的句子并发,如果在不同的糖瓜粘是什么东西cpu运行就是并行
2)m1,m2,m3正在执行一个g,m1的协程队列有三个,m2的协程队列有三个,m3的协程队列有两个
3)从上图吉林大学分数线可以看到:go的协程是轻量级的线程,是逻辑态的,go可以容易的起上万个协程
4)其他程序c/java的多线程,往往是内核态的,比较重量级,几千个线程就有可能耗光cpu资源
mpg模式运行状态2
1)分成两个部分来看
2)原来的情况是m1主线程正在执行g1协程,另外有三个协程在等待
3)如果g1协程阻塞,比如读取文件或者数雁荡山景点介绍据库
4)这时就会创建m2主线程(也可能是从已有的线程池中取出m2)并且将等待的三个协程挂到m2下执行,m1主线程下的g1仍然执行文件的读写
5)这样的mpg调度模式,既可以让g1执行,也不会让队列的其他协程一直阻塞
本文发布于:2023-04-07 12:32:43,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/a297e862f1d7c45958ce272838366962.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:[Go] golang的MPG调度模型.doc
本文 PDF 下载地址:[Go] golang的MPG调度模型.pdf
留言与评论(共有 0 条评论) |