Sobes.tech
Junior — Middle

¿Es posible implementar un procesamiento paralelo completo de tareas en el lenguaje Go?

sobes.tech AI

Respuesta de la IA

Sí, en el lenguaje Go se puede implementar un procesamiento paralelo completo de tareas. Go ofrece soporte incorporado para concurrencia a través de goroutines, que son hilos ligeros gestionados por el runtime de Go.

Las goroutines permiten ejecutar funciones en paralelo, y los canales facilitan el intercambio seguro de datos entre ellas.

Ejemplo de procesamiento paralelo:

package main

import (
    "fmt"
    "time"
)

func worker(id int, jobs <-chan int, results chan<- int) {
    for j := range jobs {
        fmt.Printf("Trabajador %d procesando tarea %d\n", id, j)
        time.Sleep(time.Second) // simulación de trabajo
        results <- j * 2
    }
}

func main() {
    jobs := make(chan int, 5)
    results := make(chan int, 5)

    for w := 1; w <= 3; w++ {
        go worker(w, jobs, results)
    }

    for j := 1; j <= 5; j++ {
        jobs <- j
    }
    close(jobs)

    for a := 1; a <= 5; a++ {
        fmt.Println("Resultado:", <-results)
    }
}

De esta manera, Go permite implementar de manera eficiente el procesamiento paralelo con mínimos esfuerzos.