Go ஆனது concurrency safety-க்கு இரண்டு அணுகுமுறைகளை வழங்குகிறது: channels ("share memory by communicating") மற்றும் sync package (பகிரப்பட்ட memory-ஐ நேரடியாகப் பாதுகாக்க mutexes/locks). Go-வின் channel-முதன்மை தத்துவம் இருந்தபோதிலும், பகிரப்பட்ட state-ஐ பாதுகாப்பதற்கு sync primitives பெரும்பாலும் எளிமையான, மிகவும் திறமையான தேர்வாக இருக்கின்றன.
sync.Mutex — lock மூலம் பகிரப்பட்ட state-ஐ பாதுகாத்தல்
Counter {
mu sync.Mutex
count
}
Increment() {
c.mu.Lock()
c.mu.Unlock()
c.count++
}
