Go inatoa njia mbili za usalama wa concurrency: channels ("share memory by communicating") na package ya sync (mutexes/locks za kulinda kumbukumbu inayoshirikiwa moja kwa moja). Licha ya falsafa ya Go inayopendelea channels, sync primitives mara nyingi ni chaguo rahisi zaidi na lenye ufanisi zaidi kwa kulinda hali inayoshirikiwa.
sync.Mutex — linda hali inayoshirikiwa kwa lock
Counter {
mu sync.Mutex
count
}
Increment() {
c.mu.Lock()
c.mu.Unlock()
c.count++
}
