Go bietet zwei Ansätze für Concurrency-Sicherheit: channels ("teile Speicher durch Kommunikation") und das sync-Paket (Mutexes/Sperren zum direkten Schutz gemeinsamer Speicher). Trotz Gos Channel-First-Philosophie sind sync-Primitive oft die einfacherer und effizientere Wahl zum Schutz gemeinsamen Zustands.
sync.Mutex — gemeinsamen Zustand mit einer Sperre schützen
Counter {
mu sync.Mutex
count
}
Increment() {
c.mu.Lock()
c.mu.Unlock()
c.count++
}
