数据通道

数据通道(channel)是有类型的队列,它用于协程(goroutine)之间以线程安全的的方式通信。

通道的零值nil

通道的基本用法:

package main

import (
	"fmt"
)

func main() {
	// 创建一个容量为1,无缓冲的,交换int数据的channel
	ch := make(chan int)
	// 新起一个协程,将数值3通过channel传递出去
	go func() { ch <- 3 }()
	// 从channel中读取数据
	// 下面的操作会等待上面的协程发送一个值
	n := <-ch
	fmt.Printf("n: %d\n", n)
}

最后更新于