登录
首页 >  Golang >  Go问答

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

来源:stackoverflow

时间:2024-04-21 11:51:39 450浏览 收藏

有志者,事竟成!如果你在学习Golang,那么本文《如何理解容量为 C 的通道上的第 k 个接收发生在该通道的第 k+C 个发送完成之前?》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

它来自频道通信。

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


解决方案


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

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

这只是意味着容量为 c 的通道一次只能容纳 c 条消息,因此在容量为 4(c) 的通道上发送第 11(k+c) 条消息)7(k) 消息应该已收到,否则第 11 次发送将被阻止,直到收到为止。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《如何理解容量为 C 的通道上的第 k 个接收发生在该通道的第 k+C 个发送完成之前?》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>