Maison > Article > développement back-end > Comment déterminer si le canal est fermé dans Golang
Map est une collection non ordonnée de paires clé-valeur. Le point le plus important de Map est de récupérer rapidement les données via une clé, qui est similaire à un index et pointe vers la valeur des données.
Map est une collection, nous pouvons donc la parcourir tout comme les tableaux et les tranches. Cependant, Map n'est pas ordonné et nous ne pouvons pas déterminer l'ordre dans lequel il est renvoyé. En effet, Map est implémenté à l'aide d'une table de hachage.
Jetons un coup d'œil à la méthode permettant de déterminer si une chaîne est fermée dans Golang :
Lors de la lecture d'une chaîne, déterminez si elle a été fermée
_,ok := <- jobs
Si le canal est fermé à ce moment, la valeur ok est fausse
Lors de l'écriture dans le chaîne, déterminez si elle a été fermée
1._,ok := <- jobs
Si la chaîne est fermée à ce moment, la ok la valeur est fausse. Si le canal n'est pas fermé, un travail sera manqué
2. Utilisez la méthode de sélection
pour créer un autre canal, appelé timeout. Si le délai expire, envoyez true à ce canal et le producteur enverra les données au canal du travail. Utilisez select pour surveiller le délai d'attente, et s'il expire, fermez le canal des travaux.
go func() { time.Sleep(time.Second * 3) timeout <- true }()
go func() { for i := 0; ; i++ { select { case <-timeout: close(jobs) return default: jobs <- i fmt.Println("produce:", i) } } }()
Pour plus de golang. connaissances, veuillez faire attention à la colonne tutoriel golang du site Web PHP chinois.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!