En utilisant un canal tamponné, comment mesurer le nombre d'éléments présents dans le canal ? Par exemple, je crée et envoie sur un canal comme ceci :
send_ch := make(chan []byte, 100)
// code
send_ch <- msg
Je veux mesurer combien msgs sont dans le canal envoyer_ch .
Je suis conscient qu'en raison de la concurrence, la mesure ne sera pas exacte, car la préemption peut se produire entre la mesure et l'action (voir par exemple cette vidéo). Google I/O 2012 - Les modèles de concordance de Go ). Je l'utiliserai pour contrôler le flux entre les producteurs et les consommateurs, c'est-à-dire qu'une fois que j'ai franchi un filigrane élevé, je changerai de comportement jusqu'à ce que je repasse par un filigrane bas.