Go eşzamanlılık güvenliği için iki yaklaşım sunar: kanallar ("belleği iletişimle paylaş") ve sync paketi (paylaşılan belleği doğrudan koruyan muteksler/kilitler). Go'nun kanal önceliğine rağmen, sync ilkeleri genellikle paylaşılan durumu korumanın daha basit, daha verimli seçeneğidir.
sync.Mutex — paylaşılan durumu bir kilit ile koru
Counter {
mu sync.Mutex
count
}
Increment() {
c.mu.Lock()
c.mu.Unlock()
c.count++
}
