Go 提供两种并发安全方法:channels("通过通信共享内存")和 sync 包(用互斥锁/锁直接保护共享内存)。尽管 Go 推崇 channel-first 的理念,但 sync 原语通常是保护共享状态更简单、更高效的选择。
sync.Mutex — 用锁保护共享状态
go
Counter {
mu sync.Mutex
count
}
Increment() {
c.mu.Lock()
c.mu.Unlock()
c.count++
}
