Go concurrency सुरक्षा के लिए दो दृष्टिकोण प्रदान करता है: channels ("share memory by communicating") और sync package (shared memory को सीधे सुरक्षित रखने के लिए mutexes/locks)। 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++
}
