Explique el concepto de concurrencia en el lenguaje de programación Go y su papel en el desarrollo de aplicaciones paralelas
sobes.tech AI
Respuesta de la IA
En Go, la competencia (concurrencia) es la capacidad de un programa para realizar varias tareas simultáneamente, utilizando eficientemente los recursos del procesador. En el lenguaje Go, esto se logra mediante las goroutines, que son hilos ligeros que se inician con la palabra clave go.
La competencia permite escribir aplicaciones paralelas, donde diferentes partes del código se ejecutan al mismo tiempo, lo que aumenta el rendimiento y la capacidad de respuesta de los programas.
Para sincronizar y compartir datos entre goroutines, se utilizan canales, que proporcionan una comunicación segura sin necesidad de bloqueos explícitos.
Ejemplo:
package main
import (
"fmt"
"time"
)
func worker(id int) {
fmt.Printf("Trabajador %d iniciando\n", id)
time.Sleep(time.Second)
fmt.Printf("Trabajador %d terminado\n", id)
}
func main() {
for i := 1; i <= 3; i++ {
go worker(i) // iniciar goroutine
}
time.Sleep(2 * time.Second) // esperar a que terminen las goroutines
}
En este ejemplo, tres goroutines se ejecutan simultáneamente, demostrando la competencia en Go.