下面的代码,可以帮你来达成,虽然不是很高大上的东西,但还是希望能够给大家带来一些帮助:
package main
import (
"fmt"
"sync/atomic"
)
func main() {
sem := make(chan struct{}, 10)
var count int32
for {
sem <- struct{}{}
go func() {
atomic.AddInt32(&count, 1)
defer func() {
<-sem
atomic.AddInt32(&count, -1)
}()
fmt.Printf("count is :%d\n", count)
}()
}
}