Go语言 最大的特点是提供简单易用的并发编程,这个并发的执行单元就是goroutine, 这个goroutine 是运行在用户态,并由GO自身来调度。调度器来决定谁来使用CPU资源,谁该让出CPU资源。 本文就来深入探讨一下Go的调度原理。 GMP调度模型 Go采用的是GMP调度模型。 核心概念 G :即Goroutine ,使用关键字 go 即可创建一个协程来处理用户程序,如下所示: 1 go func() //创建协程来执行函数 M :Machine 系统抽象的线程,代表真正的机器资源,目前最多10000,超过这个数量会panic. P :Process,虚拟处理器,代表goroutine的上下文,用于关联G和M;P的数量可以通 …
阅读更多