Maison >développement back-end >Golang >Comment déterminer le nombre d'éléments dans un canal tamponné ?

Comment déterminer le nombre d'éléments dans un canal tamponné ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-14 20:34:02717parcourir

How to Determine the Number of Elements in a Buffered Channel?

Mesure du nombre d'éléments dans un canal tamponné

Question :

Comment le nombre de les éléments présents dans un canal tamponné soient déterminé ?

Réponse :

La fonction len peut être utilisée pour mesurer le nombre d'éléments dans un canal tamponné. D'après la documentation :

func len(v Type) int

La fonction len renvoie la longueur de la valeur donnée, comme suit :

  • Array : Nombre d'éléments dans le tableau.
  • Tranche ou carte : Nombre d'éléments dans la tranche ou map.
  • Channel : Nombre d'éléments mis en file d'attente dans le tampon du canal.

Par exemple, considérons le code suivant :

package main

import "fmt"

func main() {
    send_ch := make(chan []byte, 100)
    for i := 0; i < 34; i++ {
        send_ch <- []byte("message")
    }
    fmt.Println(len(send_ch))
}

Ce code affichera :

34

Il est important de noter que la mesure peut ne pas être précise en raison de concurrence; une préemption pourrait se produire entre la mesure et l’action. Cependant, la fonction len fournit une approximation étroite du nombre d'éléments dans le canal.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn