导航菜单

Go语言Channel与Goroutine

Channel基础

Channel是Go并发通信的核心,支持无缓冲和有缓冲两种模式。

// 创建无缓冲channel
ch := make(chan int)
// 创建有缓冲channel
ch2 := make(chan string, 3)

// 发送和接收
ch <- 10
x := <-ch

// 关闭channel
close(ch)
  • 无缓冲channel发送和接收必须同步。
  • 有缓冲channel可异步发送,缓冲满时阻塞。
  • 关闭channel后不能再发送数据。