Junior — Middle
How does the program behave when trying to write data to a bufferless channel that is initially empty?
sobes.tech AI
Answer from AI
A buffered channel in Go (buffer size > 0) allows asynchronous communication. It can hold a specified number of elements, so sending to the channel does not block if the buffer is not full, and receiving does not block if the buffer is not empty.
Example:
ch := make(chan int, 2) // buffered channel with capacity 2
ch <- 1 // does not block
ch <- 2 // does not block
// next send would block if buffer is full
This enables decoupling of sender and receiver, allowing them to operate at different speeds.