Go底层原理与工程化实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 GMP调度模型

我刚学习Go语言的时候就接触到了GMP调度模型,解释起来很简单,G(goroutine)代表协程,M(machine)代表线程,P(processor)代表逻辑处理器。但是对GMP的理解一直很模糊,为什么存在逻辑处理器的概念,它在调度模型里承担了什么职责呢?线程就是用来调度协程的吗?怎么调度的呢?还有,我始终不明白协程为什么能并发执行。相信应该不止笔者一个人有这些疑问。学习完本节,相信读者就能对GMP调度模型有一个比较深刻的认识。