gpt4 book ai didi

go - 了解缓冲 channel 的工作原理

转载 作者:数据小太阳 更新时间:2023-10-29 03:43:51 26 4
gpt4 key购买 nike

谁能给我解释一下 channel 在这些场景中是如何工作的:

  1. 如果 channel 没有缓冲,如果您在尚未收到任何消息时向 channel 2 发送消息,它是否会阻止应用程序?

  2. 如果有缓冲区,一旦达到缓冲量,它的行为就像#1?因此,如果缓冲区为 2,则在 2 条消息之后它会阻塞,直到您收到至少 1 条消息?

既然你必须设置缓冲量,你不能只有一个 channel 来存储任意数量的消息吗?

最佳答案

  1. 是的。
  2. 是的。
  3. 不,您不能拥有无限缓冲的 channel 。

详细介绍 in the Go tour .

基本上,无论何时例程在 channel 上发送,该例程都会阻塞,直到某物 可用于接收它。这可能是 channel 缓冲区,也可能是试图从 channel 接收的东西。同样,每当例程在 channel 上接收时,该例程就会阻塞,直到有东西可以接收为止。

关于go - 了解缓冲 channel 的工作原理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48174814/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com