Go بیک وقت محفوظ رہنے کے دو طریقے پیش کرتا ہے: channels ("memory کو communicate کے ذریعے شیئر کریں") اور sync package (mutexes/locks براہ راست شیئر شدہ memory کی حفاظت کے لیے)۔ Go کی channel-first فلسفہ کے باوجود، sync primitives اکثر shared state کی حفاظت کے لیے سادہ تر اور زیادہ موثر انتخاب ہیں۔
sync.Mutex — lock کے ساتھ shared state کی حفاظت کریں
Counter {
mu sync.Mutex
count
}
Increment() {
c.mu.Lock()
c.mu.Unlock()
c.count++
}
