并发编程
一、Goroutine
1.1 Goroutine 基础
- Goroutine 概念
- Goroutine 创建
- Goroutine 调度
- Goroutine vs 线程
1.2 Goroutine 管理
- Goroutine 生命周期
- WaitGroup 同步
- Goroutine 泄漏
1.3 Goroutine 最佳实践
- Goroutine 使用场景
- Goroutine 数量控制
- 优雅关闭
二、Channel
2.1 Channel 基础
- Channel 概念
- Channel 创建
- Channel 发送和接收
- Channel 关闭
2.2 Channel 类型
- 无缓冲 Channel
- 有缓冲 Channel
- 单向 Channel
- select 多路复用
2.3 Channel 操作
- 遍历 Channel(range)
- 检查 Channel 关闭
- Channel 零值
2.4 Channel 高级用法
- 超时控制
- 定时器
- Ticker
- select default 分支
三、并发模式
3.1 生产者消费者模式
3.2 扇出/扇入模式
- Fan-out
- Fan-in
3.3 资源池模式
- Worker Pool
- 限流
3.4 Pipeline 模式
3.5 Publish/Subscribe 模式
四、Context
4.1 Context 基础
- Context 概念
- Context 创建
- Context 传播
4.2 Context 类型
- Background
- TODO
- WithCancel
- WithDeadline
- WithTimeout
- WithValue
4.3 Context 使用
- 取消信号
- 超时控制
- 元数据传递
4.4 Context 最佳实践
五、并发安全
5.1 数据竞争
- 竞态检测(go run -race)
- 常见数据竞争场景
5.2 互斥锁(sync.Mutex)
- 锁基本用法
- RWMutex 读写锁
- 死锁避免