gmp模型中一定要有p吗

本文阅读 2 分钟
首页 golang 正文
题目来源:百度

答案:斯鱼

GMP模型指的是

  • G gorountine
    G是由go语言创建的具体代码执行体,位于用户态空间,占用较小的内存空间,G之间切换无须复杂的上下文、用户内核空间态的切换;
  • M Machine,操作系统的执行线程
    操作系统的执行线程,最多GOMAXPROCS个活跃线程与核数一致,减少线程上下文的切换
  • P 调度器,处理M与G的关系
    可以调度线程执行的G,将那些进入系统调用而等待的G让出
    为M提供上下文环境及资源

综上,P不一定要有,默认G,M可运行,但是存在:共享变量的操作需要使用锁,只有一个M,单线程执行,M切换G过程和线程切换没有太大区别,由go语言实现goroutine的上下文信息及运行状态的改变;

本文来自投稿,不代表本站立场,如若转载,请注明出处:
了解中间件吗?有什么好处?
« 上一篇 09-17
Go 高并发的特点
下一篇 » 09-17

发表评论

发表评论