Go基础 专题
专题目录
您的位置:go > Go基础 专题 > Go通道缓冲实例
Go通道缓冲实例
作者:--    发布时间:2019-11-20

默认情况下,通道是未缓冲的,意味着如果有相应的接收(<- chan)准备好接收发送的值,它们将只接受发送(chan <- )。 缓冲通道接受有限数量的值,而没有用于这些值的相应接收器。

这里使一个字符串的通道缓冲多达2个值。因为这个通道被缓冲,所以可以将这些值发送到通道中,而没有相应的并发接收。

之后可以照常接收这两个值。

所有的示例代码,都放在 f:\worksp\golang 目录下。安装go编程环境请参考:http://www.h3.com/go/go_environment.html

channel-buffering.go的完整代码如下所示 -

package main

import "fmt"

func main() {

    // here we `make` a channel of strings buffering up to
    // 2 values.
    messages := make(chan string, 2)

    // because this channel is buffered, we can send these
    // values into the channel without a corresponding
    // concurrent receive.
    messages <- "buffered"
    messages <- "channel"

    // later we can receive these two values as usual.
    fmt.println(<-messages)
    fmt.println(<-messages)
}

执行上面代码,将得到以下输出结果 -

f:\worksp\golang>go run channel-buffering.go
buffered
channel

网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册