Goroutine虽然体量很小(2kb),理论可以开启上百万个Goroutine。但也不是多多益善。一旦Goroutine过多,会占用大量的cpu 内存,可能导致服务器速度变慢甚至服务挂掉。

先看一下不控制Goroutine数量,看能跑多少

Cpu: 4

Mem: 16G

	tasks := math.MaxInt64
	for i := 0; i < tasks; i++ {
   
		go func(i int) {
   
			fmt.