Junior
Ποιοι άλλοι τρόποι συγχρονισμού των goroutines υπάρχουν στο Go εκτός από τις κανάλες;
sobes.tech AI
Απάντηση από AI
Además de los canales, en Go, para sincronizar las goroutines, se pueden usar:
- sync.WaitGroup — permite esperar a que un grupo de goroutines termine.
- sync.Mutex — mutex para proteger recursos compartidos contra accesos simultáneos.
- sync.RWMutex — mutex con separación entre lectura y escritura.
- sync.Cond — variable condicional para notificar a las goroutines sobre la ocurrencia de un evento.
- Operaciones atómicas del paquete
sync/atomic— para operaciones atómicas con variables sin bloqueos.
Ejemplo de uso de WaitGroup:
var wg sync.WaitGroup
wg.Add(1)
go func() {
defer wg.Done()
// trabajo de la goroutine
}()
wg.Wait() // esperamos a que todas las goroutines terminen