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.
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.
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 }
Running the code will produce the following output:
34
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!