make(chan int, 10)
这个表达式初始化了一个通道类型的值,传递给make函数的第一个参数表明此值的具体类型为int的通道类型,而第二个参数则指出该通道在同一时刻最多可以缓冲10个元素值。
当然,可以在初始化一个通道的时候省略第二个参数值: make(chan int),一个通道值得缓冲容量总是固定不变的,如果第二个参数被省略了,就表示被初始化的这个通道永远无法缓冲任何元素值。发送给它的元素值应该被立刻取走,否则发送方的goroutiine就会被暂停(或者说阻塞),直到有接收方接收这个元素值。
我们可以把初始化时第二个参数值大于0的通道称为缓冲通道,未给定第二个参数或者值等于0的通道称为非缓冲通道。
版权声明:本文为xiaomucgwlmx原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。