У меня есть очередь и функция, которая выполняет как удаление из очереди, так и постановку в очередь. Я хочу убедиться, что в очереди работает нужное количество горутин, если в списке есть что-то.
Это код, который я использую, но мне было интересно, есть ли способ распечатать количество активных в данный момент горутин.
var element int
func deen(queue chan int) {
element := <-queue
fmt.Println("element is ", element)
if element%2 == 0 {
fmt.Println("new element is ", element)
queue <- (element*100 + 11)
queue <- (element*100 + 33)
}
}
func main() {
queue := make(chan int, 10)
queue <- 1
queue <- 2
queue <- 3
queue <- 0
for len(queue) != 0 {
for i := 0; i < 2; i++ {
go deen(queue)
}
}
fmt.Scanln()
fmt.Println("list is has len", len(queue)) //this must be 0
}