使用channel的场景:
- 在协程间转移数据所有权
- 协调多个逻辑 使用mutex的场景:
- 保护struct的内部变量
向nil通道读写或会阻塞
条件变量
c := sync.NewCond(&sync.Mutex{})
c.L.Lock()
for conditionTrue() == false {
c.Wait() }
}
c.L.Unlock()
- Concurrent in Go
Search
Jan 18, 2026, 1 min read
使用channel的场景:
向nil通道读写或会阻塞
条件变量
c := sync.NewCond(&sync.Mutex{})
c.L.Lock()
for conditionTrue() == false {
c.Wait() }
}
c.L.Unlock()