Junior — Middle
Ce sarcini îndeplinește pachetul sync în limbajul de programare Go?
sobes.tech AI
Răspuns de la AI
Pachetul sync din limbajul Go oferă primitive de sincronizare pentru gestionarea accesului concurent la resurse și coordonarea gorutinelor.
Principalele sarcini pe care le rezolvă pachetul sync:
- Mutex (
Mutex) — pentru protejarea secțiunilor critice și prevenirea accesului simultan la datele comune. - RWMutex — mutex cu separare între citire și scriere, permițând mai multor gorutine să citească datele în același timp, dar blocând scrierea.
- WaitGroup — pentru a aștepta finalizarea unui grup de gorutine.
- Once — pentru a realiza inițializarea o singură dată.
Exemplu de utilizare a Mutex:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock()
defer mu.Unlock()
counter++
}
Astfel, pachetul sync ajută la lucrul sigur cu concurența și evitarea condițiilor de cursă.