Junior — Middle
Aké úlohy rieši balíček sync v jazyku Go?
sobes.tech AI
Odpoveď od AI
Balík sync v jazyku Go poskytuje primitives synchronizácie na správu súbežného prístupu k zdrojom a koordináciu gorutín.
Hlavné úlohy, ktoré rieši balík sync:
- Mutex (
Mutex) — na ochranu kritických sekcií a zabránenie súbežného prístupu k zdieľaným dátam. - RWMutex — mutex s rozdelením na čítanie a zápis, ktorý umožňuje viacerým gorutinám čítať dáta súčasne, ale blokuje zápis.
- WaitGroup — na čakanie na dokončenie skupiny gorutín.
- Once — na vykonanie inicializácie iba raz.
Príklad použitia Mutex:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock()
defer mu.Unlock()
counter++
}
Týmto spôsobom balík sync pomáha bezpečne pracovať s konkurenciou a vyhýbať sa závodným podmienkam.