go理论知识——Go Channel 笔记 📝
1. 基本概念 🧠
1.1 Channel 是什么?
- Channel 是 Go 语言中用于在不同 Goroutine 之间进行通信的机制。
- Channel 是类型安全的,意味着你只能发送和接收特定类型的数据。
1.2 Channel 的创建 🏗️
- 使用
make
函数创建 Channel:
c := make(chan int)
- 可以创建带缓冲的 Channel:
c := make(chan int, 3) // 缓冲区大小为 3
2. 无缓冲 Channel 🚫
2.1 无缓冲 Channel 的特性
- 无缓冲 Channel 是同步的,发送和接收操作会阻塞,直到另一端准备好。
- 示例代码:
c := make(chan int) go func() { defer fmt.Println("goroutine 结束") fmt.Println("goroutine is running……"