024_go语言中的缓冲通道

Posted 乱七八糟的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了024_go语言中的缓冲通道相关的知识,希望对你有一定的参考价值。

代码演示

package main

import "fmt"

func main() {
    messages := make(chan string, 2)
    messages <- "buffered"
    messages <- "channel"
    fmt.Println(<-messages)
    fmt.Println(<-messages)
}

代码运行结果

buffered
channel

代码解读:

  • 默认通道是无缓冲的,这意味着只有在有对应的接收方时候,才可以进行发送
  • 可缓冲的通道,允许没有接收方的情况下,缓存限定数量的值
  • 以上例子make了一个通道,可以缓冲两个值

以上是关于024_go语言中的缓冲通道的主要内容,如果未能解决你的问题,请参考以下文章

027_go语言中的通道选择器

每天一个知识点:Go 语言当中 Channel(通道)有啥特点,需要注意啥?

Go语言的并发(多线程协程)通道(信道)缓冲信道(Buffer Channels)长度和容量

Go中缓冲通道的死锁

go-runtime 不会将对象推出缓冲通道

Go语言之通道