Sobes.tech
Junior — Middle

Quelles tâches le package sync résout-il dans le langage de programmation Go?

sobes.tech IA

Réponse de l'IA

Le paquet sync dans le langage Go fournit des primitives de synchronisation pour gérer l'accès concurrent aux ressources et coordonner les goroutines.

Les principales tâches que résout le paquet sync:

  • Mutex (Mutex) — pour protéger les sections critiques et empêcher l'accès simultané aux données partagées.
  • RWMutex — mutex avec séparation entre lecture et écriture, permettant à plusieurs goroutines de lire les données simultanément, mais bloquant l'écriture.
  • WaitGroup — pour attendre la fin d'un groupe de goroutines.
  • Once — pour effectuer une initialisation une seule fois.

Exemple d'utilisation de Mutex:

var mu sync.Mutex
var counter int

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

Ainsi, le paquet sync aide à travailler en toute sécurité avec la concurrence et à éviter les conditions de course.