Les canaux tamponnés fournissent un moyen de communication pratique entre les goroutines tout en permettant le stockage temporaire des éléments. Pour gérer efficacement le contrôle de flux, il devient nécessaire de déterminer le nombre d'éléments actuellement présents dans un canal.
Le langage Go fournit la fonction intégrée len, qui peut être utilisé pour obtenir la longueur de diverses structures de données, y compris les canaux. Dans le contexte d'un canal mis en mémoire tampon, la fonction len renvoie le nombre d'éléments actuellement en file d'attente non lus dans le tampon du canal.
Le code suivant démontre l'utilisation de la fonction len pour mesurer le nombre d'éléments dans un canal tamponné :
package main import "fmt" func main() { c := make(chan int, 100) // create a buffered channel with a capacity of 100 for i := 0; i < 34; i++ { c <- 0 // send 34 elements to the channel } fmt.Println(len(c)) // print the number of unread elements in the channel }
L'exécution du code produira ce qui suit sortie :
34
Cela confirme que le canal contient 34 éléments. Il est important de noter qu'en raison de la concurrence, la mesure peut ne pas être exacte dans tous les cas, car une préemption pourrait se produire entre la mesure et l'action.
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!