Junior — Middle
What are the distinctive features of using buffered channels in programming?
sobes.tech AI
Answer from AI
Buffered channels in Go have the following features:
- They allow sending multiple values into the channel without immediate receipt, until the buffer is full.
- The sender blocks only when the buffer is full, and the receiver blocks when the buffer is empty.
- They improve performance and allow more flexible goroutine synchronization.
- Used to implement queues and buffers between producer and consumer.
Example:
ch := make(chan int, 3) // buffer of 3 elements
ch <- 1
ch <- 2
ch <- 3
// Sender is not blocked until buffer is full
fmt.Println(<-ch) // 1