Appearance
Day 10 - Channel
channel基础
go
// 创建
ch := make(chan int)
// 发送
ch <- 1
// 接收
v := <-ch
// 关闭
close(ch)缓冲channel
go
ch := make(chan int, 10) // 容量10select
go
select {
case msg1 := <-ch1:
fmt.Println(msg1)
case msg2 := <-ch2:
fmt.Println(msg2)
default:
fmt.Println("无数据")
}面试考点
问题:channel有哪些状态?
答案:
| 操作 | nil channel | 已关闭 channel | 正常 channel |
|---|---|---|---|
| 发送 | 阻塞 | panic | 阻塞/成功 |
| 接收 | 阻塞 | 返回零值 | 阻塞/成功 |
| 关闭 | - | panic | 成功 |
📅 学习进度
| Day | 主题 | 状态 |
|---|---|---|
| 01-09 | 基础/并发 | ✅ |
| 10 | Channel | ✅ |
| 11 | 同步原语 | ⬜ |
