channel有缓冲和无缓冲在使用上有什么区别?

题目来源:网易

答案1:

  • 无缓冲:发送和接收需要同步。
  • 有缓冲:不要求发送和接收同步,缓冲满时发送阻塞。

因此 channel 无缓冲时,发送阻塞直到数据被接收,接收阻塞直到读到数据;channel有缓冲时,当缓冲满时发送阻塞,当缓冲空时接收阻塞。