The difference between make(chan int, 1) and make(chan int) in Go lies in the buffering behavior of the channels:
-
make(chan int, 1): This creates a buffered channel with a capacity of 1. A buffered channel can hold a certain number of values without blocking the sending goroutine. In this case, the channel can hold one value before it blocks the sender. If the channel is not read before sending another value, the sender will be blocked until the value is read from the channel. -
make(chan int): This creates an unbuffered channel with a capacity of 0. An unbuffered channel has no capacity to store any values. When a value is sent on an unbuffered channel, the sending goroutine will block until another goroutine receives the value from the channel. Similarly, when a value is received from an unbuffered channel, the receiving goroutine will block until another goroutine sends a value to the channel.
997

被折叠的 条评论
为什么被折叠?



