package main
import (
"fmt"
"math/rand"
"sync"
"time"
)
const concurrency = 20
func main() {
rateChannel := make(chan int, concurrency)
// 别忘记 关闭管道
defer close(rateChannel)
// channel 控制并发数量
go func() {
for {
rateChannel <- 1
time.Sleep(time.Duration(1000))
}
}()
var wg sync.WaitGroup
for{
<- rateChannel
wg.Add(1)
go func(wg *sync.WaitGroup) {
rand.Seed(1)
i := rand.Int()
fmt.Println(i)
}(&wg)
}
}