Junior — Middle
¿Pueden diferentes hilos interactuar con la misma dirección de memoria al mismo tiempo?
sobes.tech AI
Respuesta de la IA
Sí, en Go diferentes goroutines (hilos) pueden acceder simultáneamente a la misma dirección de memoria. Sin embargo, esto puede llevar a condiciones de carrera si el acceso no está sincronizado. Para interactuar de manera segura con la memoria compartida, se utilizan mecanismos de sincronización, como mutexes (sync.Mutex), canales (chan) o operaciones atómicas del paquete sync/atomic.
Ejemplo de uso de un mutex para proteger el acceso a una variable compartida:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock()
counter++
mu.Unlock()
}
Sin estas medidas, el acceso simultáneo puede causar comportamientos impredecibles en el programa.