微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何理解容量为 C 的通道上的第 k 个接收发生在该通道的第 k+C 个发送完成之前?

如何解决如何理解容量为 C 的通道上的第 k 个接收发生在该通道的第 k+C 个发送完成之前?

它来自Channel communication

我真的不明白为什么在 k+Cth 发送之前发生第 k 个接收?为什么不kth发送或k+1次发送?

解决方法

缓冲通道的容量是可能发生的非阻塞发送到通道的数量。当您用完所有容量(C + k 说明)后,下一次发送将被阻止,直到从通道接收到,然后才会完成。

如果用C = 3k = 1 等一些数字来重述链接中的句子(为了清晰起见),它将类似于:
“第四次发送到容量为 3 的频道将在第一次从频道接收后完成”

,

在容量为 C 的通道上的第 k 个接收发生在来自该通道的第 k+C 个发送完成之前。

简单来说就是容量为c的通道一次只能容纳c条消息,因此在容量为4(c)的通道上发送11th(k+c)条消息),7(k) 消息应该已经收到,否则第 11 次发送将被阻止,直到接收为止。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。