Sobes.tech
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.