Goroutines和线程:
1.动态栈:
1)线程都有一个固定大小的内存块(一般会是2MB)来做栈
2)一个goroutine会以一个很小的栈开始其生命周期,一般只需要2KB,不是固定的;栈的大小会根据需要动态地伸缩
2.Goroutine调度:
1)线程是使用硬件定时器进行的调度,速度慢
2)Go是使用的自己的调度器,在线程的基础上调度,不需要进入内核的上下文
3.GOMAXPROCS环境变量可以确定启动多少线程同时执行go代码
4.goroutine没有可以被程序员获取到的身份(id)的概念
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/12523.html