Goroutine虽然体量很小(2kb),理论可以开启上百万个Goroutine。但也不是多多益善。一旦Goroutine过多,会占用大量的cpu 内存,可能导致服务器速度变慢甚至服务挂掉。
先看一下不控制Goroutine数量,看能跑多少
Cpu: 4
Mem: 16G
tasks := math.MaxInt64
for i := 0; i < tasks; i++ {
go func(i int) {
fmt.
Goroutine虽然体量很小(2kb),理论可以开启上百万个Goroutine。但也不是多多益善。一旦Goroutine过多,会占用大量的cpu 内存,可能导致服务器速度变慢甚至服务挂掉。
先看一下不控制Goroutine数量,看能跑多少
Cpu: 4
Mem: 16G
tasks := math.MaxInt64
for i := 0; i < tasks; i++ {
go func(i int) {
fmt.