Channel 的 size 要么是 1,要么是无缓冲的
发布者:admin 发表于:444天前 阅读数:519 评论:0

channel 通常 size 应为 1 或是无缓冲的。默认情况下,channel 是无缓冲的,其 size 为零。任何其他尺寸都必须经过严格的审查。我们需要考虑如何确定大小,考虑是什么阻止了 channel 在高负载下和阻塞写时的写入,以及当这种情况发生时系统逻辑有哪些变化。(翻译解释:按照原文意思是需要界定通道边界,竞态条件,以及逻辑上下文梳理)

Bad Good

// 应该足以满足任何情况! c := make(chan int, 64) |

// 大小:1 c := make(chan int, 1) // 或者 // 无缓冲 channel,大小为 0 c := make(chan int) |