Middle+
¿Qué son la asincronía, la paralelización y la concurrencia en el contexto de Go?
sobes.tech AI
Respuesta de la IA
En el contexto de Go:
-
Asincronía — ejecución de operaciones sin bloquear el hilo principal, generalmente mediante goroutines y canales. Permite iniciar tareas que pueden ejecutarse de manera independiente y no esperar a su finalización.
-
Paralelismo — ejecución simultánea de varias tareas en diferentes núcleos del procesador. En Go, esto se logra mediante el planificador de goroutines, que las distribuye en los hilos del sistema.
-
Concurrencia — capacidad de un programa para gestionar varias tareas que pueden ejecutarse simultáneamente o en secuencia, asegurando un acceso correcto a los recursos compartidos.
Ejemplo de goroutine:
func worker(id int) {
fmt.Printf("Trabajador %d iniciado\n", id)
// trabajo
}
func main() {
for i := 1; i <= 5; i++ {
go worker(i) // inicio asíncrono
}
time.Sleep(time.Second) // esperamos a que terminen
}