Junior — Middle
¿Cómo se implementa el procesamiento paralelo y secuencial de tareas en el lenguaje Go?
sobes.tech AI
Respuesta de la IA
En Go, el procesamiento paralelo de tareas se realiza mediante goroutines, que son hilos ligeros que se inician con la palabra clave go. Se puede lanzar una goroutine para ejecutar una función de forma asíncrona, y esta se ejecutará en paralelo con otras goroutines.
El procesamiento secuencial es simplemente la llamada a funciones sin usar go, donde las tareas se realizan una tras otra.
Ejemplo de procesamiento paralelo:
package main
import (
"fmt"
"time"
)
func tarea(id int) {
fmt.Printf("Tarea %d iniciada\n", id)
time.Sleep(time.Second)
fmt.Printf("Tarea %d finalizada\n", id)
}
func main() {
for i := 1; i <= 3; i++ {
go tarea(i) // inicia una goroutine
}
time.Sleep(2 * time.Second) // espera a que terminen las goroutines
}
En este ejemplo, tres tareas se inician en paralelo. Si se elimina go, las tareas se ejecutarán secuencialmente.
Para sincronizar y gestionar goroutines, a menudo se usan canales y sync.WaitGroup.