Go는 동시성 안전성에 두 가지 접근을 제공합니다: channel("통신하여 메모리를 공유하라")과 sync 패키지(공유 메모리를 직접 보호하는 mutex/잠금). Go의 channel 우선 철학에도 불구하고, sync 기본 요소는 공유 상태를 보호하는 데 종종 더 단순하고 효율적인 선택입니다.
sync.Mutex — 잠금으로 공유 상태 보호
Counter {
mu sync.Mutex
count
}
Increment() {
c.mu.Lock()
c.mu.Unlock()
c.count++
}
