[日常] Go语言圣经-Goroutines和线程

Goroutines和线程:


1.动态栈:


1)线程都有一个固定大小的内存块(一般会是2MB)来做栈
2)一个goroutine会以一个很小的栈开始其生命周期,一般只需要2KB,不是固定的;栈的大小会根据需要动态地伸缩


2.Goroutine调度:


1)线程是使用硬件定时器进行的调度,速度慢
2)Go是使用的自己的调度器,在线程的基础上调度,不需要进入内核的上下文


3.GOMAXPROCS环境变量可以确定启动多少线程同时执行go代码
4.goroutine没有可以被程序员获取到的身份(id)的概念

猜你喜欢

转载自www.cnblogs.com/taoshihan/p/9081498.html