Maison > développement back-end > Golang > le corps du texte

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

Mary-Kate Olsen
Libérer: 2024-11-14 14:28:02
original
399 Les gens l'ont consulté

How Do You Determine the Number of Elements in a Buffered Channel?

Measuring the Number of Elements in a Buffered Channel

Buffered channels provide a convenient means of communication between goroutines while allowing for temporary storage of elements. To effectively manage flow control, it becomes necessary to determine the number of elements currently present in a channel.

Using the len Function

The Go language provides the len built-in function, which can be used to obtain the length of various data structures, including channels. In the context of a buffered channel, the len function returns the number of elements that are currently queued unread in the channel buffer.

Code Example

The following code demonstrates the use of the len function to measure the number of elements in a buffered channel:

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
}
Copier après la connexion

Output

Running the code will produce the following output:

34
Copier après la connexion

This confirms that the channel contains 34 elements. It's important to note that due to concurrency, the measurement may not be exact in all cases, as pre-emption could occur between measurement and 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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal