有2个关于协程方面的疑问
1. go语言可以轻松创建大量的协程,那么这个协程数量应该有个上限吧,一般是多少呢?是十万,还是一百万,还是更多?
2. 假如系统最多能创建100万个协程,而且每个协程里面的代码都是死循环,就是这些协程不会退出,那么当创建第1000001个协程时,程序的行为会怎样?是程序直接崩溃,还是让第1000001个协程阻塞等待,等调度器重新调度?
go中的一些最大限制:
sched.maxmcount = 10000 // maximum number of m's allowed (or die)
// 最大线程数
const (
// The max value of GOMAXPROCS.
// There are no fundamental restrictions on the value.
_MaxGomaxprocs = 1 << 10
)
新增goroutine 的限制条件是能不能获取到足够大小的stack size。
#24
更多评论