后端开发
未读Golang并发度控制在Golang中可以通过channel去控制goroutine的并发度
举个例子:
12345678910111213141516171819202122232425262728293031package mainimport ( "fmt" "sync" "time")func main() { var wg sync.WaitGroup concurrence := 2 semaphore := make(chan struct{}, concurrence) startTime := time.Now() for i := 0; i < 10; i++ { wg.Add(1) go func(i int) { defer wg.Done() // 抢占一个并发槽位 semaphore <- struct{}{} // 模拟任务执行 fmt.Printf("Task ...