首页 > 代码库 > A Tour of Go Buffered Channels

A Tour of Go Buffered Channels

Channels can be buffered. Provide the buffer length as the second argument to make to initialize a buffered channel:

ch := make(chan int, 100)

Sends to a buffered channel block only when the buffer is full. Receives block when the buffer is empty.

Modify the example to overfill the buffer and see what happens.

package mainimport "fmt"func main() {    c := make(chan int, 2)    c <- 1    fmt.Println(<-c)    fmt.Println(<-c)}

 

A Tour of Go Buffered Channels