Channel 通道的大小,通常应该为1或不缓冲。默认情况下,通道是不缓冲的,并且通道的大小为0。
任何其他大小都应该必须受到严格的审查。考虑如何确定大小,在负载下如何防止通道被填满和阻塞写入器,以及发生这种情况时会发生什么。
Bad
// 对任何人来说应该足够了
c := make(chan int, 64)
Good
// 大小为1
c := make(chan int, 1) // 或者
// 无缓冲channel, 大小为0
c := make(chan int)
Channel 通道的大小,通常应该为1或不缓冲。默认情况下,通道是不缓冲的,并且通道的大小为0。
任何其他大小都应该必须受到严格的审查。考虑如何确定大小,在负载下如何防止通道被填满和阻塞写入器,以及发生这种情况时会发生什么。
Bad
// 对任何人来说应该足够了
c := make(chan int, 64)
Good
// 大小为1
c := make(chan int, 1) // 或者
// 无缓冲channel, 大小为0
c := make(chan int)