山高月小,水落石出。

Goroutine Channel

Go Channel 详细讲解 Channel 是 Go 并发编程的核心,它是 goroutine 之间通信的管道,遵循 “不要通过共享内存来通信,而要通过通信来共享内存” 的设计哲学。 一、Channel 基础概念 1.1 什么是 Channel Channel 是一个类型化的管道,可以通过它发送和接收值: 1 2 3 ch := make(chan int) // 无缓冲 channel ch <- 42 // 发送 x := <-ch // 接收 1.2 创建方式 1 2 3 4 5 6 7 8 // 无缓冲 channel(同步) ch1 := make(chan int) // 有缓冲 channel(异步,容量为 3) ch2 := make(chan string, 3) // 声明(nil channel,无法使用,会永久阻塞) var ch3 chan int 1.3 三种操作 操作 语法 说明 发送 ch <- v 向 channel 写入 接收 v := <-ch 从 channel 读出 关闭 close(ch) 关闭 channel 二、无缓冲 vs 有缓冲 2.1 无缓冲 Channel(同步) 无缓冲 channel 的发送和接收必须同时准备好,否则阻塞。这叫"同步通信"。 ...

October 12, 2026 · 6 min · zwdart