跳到主要内容

并发编程

一、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 读写锁
  • 死锁避免

5.3 原子操作(sync/atomic)

5.4 Once 单次执行

5.5 Wait 和 Cond

5.6 并发安全最佳实践