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.