这个多进程切换的逻辑,就是 进程调度器
进程调度器的作用就是在多个进程运行时,切换不同的进程去运行....关系
进程与线程之间为1:N关系
线程与协程之间为1:N关系
操作系统的最小调度单位为线程
线程可以运行协程
在GMP中,线程与协程之间的关系为M:N,协程A可能会在线程1执行,也可能下一次在线程2执行...GMP调度模型
在go语言中,主要分为3个对象:M(thread),G(goroutine),P(processor)
M(thread) 线程,
G(goroutine) go的协程
P(processor...关于GMP数量的问题
G
协程数量在理论上是无限的,每个协程需要占用大概4kb的内存,只要内存足够可以一直创建,只要使用go关键字即可创建
M
M在有空闲P需要执行时就会创建,每个P都得绑定一个M,如果一个...在调度或系统调用时会使用 G0 的栈空间,全局变量的 G0 是 M0 的 G0。