Go tilbyr to tilnærminger til concurrency safety: channels ("share memory by communicating") og sync-pakken (mutexes/locks for å beskytte delt minne direkte). Til tross for Gos channel-først filosofi, er sync-primitiver ofte det enklere og mer effektive valget for å beskytte delt tilstand.
sync.Mutex — beskytt delt tilstand med en lås
Counter {
mu sync.Mutex
count
}
Increment() {
c.mu.Lock()
c.mu.Unlock()
c.count++
}
