Channel 通道的大小,通常应该为1或不缓冲。默认情况下,通道是不缓冲的,并且通道的大小为0。
任何其他大小都应该必须受到严格的审查。考虑如何确定大小,在负载下如何防止通道被填满和阻塞写入器,以及发生这种情况时会发生什么。
Bad
// 对任何人来说应该足够了
c := make(chan int, 64)
Good
// 大小为1
c := make(chan int, 1) // 或者
// 无缓冲channel, 大小为0
c := make(chan int)
本文探讨了Go语言中Channel的使用,强调了通道大小选择的重要性。默认情况下,Channel是无缓冲的,大小为0。设置其他大小如64需要谨慎,可能导致阻塞写入。建议使用大小为1的Buffered Channel或无缓冲Channel,以避免潜在的问题。
Channel 通道的大小,通常应该为1或不缓冲。默认情况下,通道是不缓冲的,并且通道的大小为0。
任何其他大小都应该必须受到严格的审查。考虑如何确定大小,在负载下如何防止通道被填满和阻塞写入器,以及发生这种情况时会发生什么。
Bad
// 对任何人来说应该足够了
c := make(chan int, 64)
Good
// 大小为1
c := make(chan int, 1) // 或者
// 无缓冲channel, 大小为0
c := make(chan int)
8176

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