Sobes.tech
Junior — Middle

Jaké úkoly řeší balíček sync v jazyce Go?

sobes.tech AI

Odpověď od AI

Balíček sync v jazyce Go poskytuje primitives synchronizace pro správu souběžného přístupu ke zdrojům a koordinaci gorutin.

Hlavní úkoly, které balíček sync řeší:

  • Mutex (Mutex) — pro ochranu kritických sekcí a zabránění současného přístupu ke sdíleným datům.
  • RWMutex — mutex s oddělením čtení a zápisu, který umožňuje více gorutinám číst data současně, ale blokuje zápis.
  • WaitGroup — pro čekání na dokončení skupiny gorutin.
  • Once — pro provedení inicializace pouze jednou.

Příklad použití Mutex:

var mu sync.Mutex
var counter int

func increment() {
    mu.Lock()
    defer mu.Unlock()
    counter++
}

Tímto způsobem balíček sync pomáhá bezpečně pracovat s konkurencí a vyhýbat se závodním podmínkám.