有2个关于协程方面的疑问
1. go语言可以轻松创建大量的协程,那么这个协程数量应该有个上限吧,一般是多少呢?是十万,还是一百万,还是更多?
2. 假如系统最多能创建100万个协程,而且每个协程里面的代码都是死循环,就是这些协程不会退出,那么当创建第1000001个协程时,程序的行为会怎样?是程序直接崩溃,还是让第1000001个协程阻塞等待,等调度器重新调度?
M:machine 默认值10000 `sched.maxmcount = 10000`
P:processor 默认值256 `_MaxGomaxprocs = 1 << 8`
G:goroutine 通过gfree、runq,队列形式被调用,无直接数量限制。具体参见`runtime2.go`
#15
更多评论