引用自Day 3 Tutorial<;-阅读本文了解更多信息.
Goroutine根据需要进行多路复用 放到系统线程上.当一只猩猩 执行阻塞系统调用,则为no 其他的猩猩线路被封锁了.
我们将对CPU绑定执行同样的操作 在某种程度上是大猩猩,但现在, 如果您想要用户级并行性,您可以 必须设置$GOMAXPROCS.或致电 runtime.GOMAXPROCS(N).
Goroutine不一定对应于OS线程.它可以具有较小的初始堆栈大小,并且堆栈将根据需要增长.
当需要时,多个gorouitine可以被多路复用到一个线程中.
更重要的是,如上所述,大猩猩的概念是,大猩猩是一个连续的程序,它可以挡路自己,但不挡路其他大猩猩.
Goroutines在gccgo中实现为pthread,因此它也可以与OS线程相同. 它分离了操作系统线程的概念和我们在编程时的多线程思维.