最赞回答 / gypsy_gyq
1、channel 是分缓冲通道和非缓冲通道的,在 make channel 的时候,如果没有指定通道容量,那么这就是一个非缓冲通道。非缓冲通道的特点是,必须发送和接收同时进行,否则就会等待;而缓冲通道不需要发送和接收同时进行,但是当通道满的时候,发送方也会阻塞,必须等到接收方从通道中拿走数据后才能继续发送。2、所以上面的代码没有指定容量,是一个非缓冲通道,那么必然是发送和接收同时进行的,也可以理解为 放一个 range 一个。
2020-03-15