Zählung / Anzeige der Anzahl der aktiven goroutines

Habe ich eine queue und eine Funktion, die beide dequeueing und enqueueing. Ich möchte sicherstellen, dass die richtige Menge von goroutines auf betreiben der Warteschlange, solange es ist etwas in der Liste.

Dies ist der code, den ich verwende, aber ich Frage mich, ob es einen Weg gibt, der Druck, die Menge der aktuell aktiven goroutines

Link zum Spielplatz

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

}    
InformationsquelleAutor meto | 2014-09-26
Schreibe einen Kommentar