Sobes.tech
Senior

Livecoding: hay un array de números del 1 al 10, hay que elevarlos al cuadrado, paralelizando los cálculos en tres hilos (workers). La cantidad de workers se define en una constante. Para cada número, mostrar el ID del worker que lo procesa.

sobes.tech AI

Respuesta de la IA

go package main

import ( "fmt" "sync" )

const workerCount = 3

func worker(id int, jobs <-chan int, wg *sync.WaitGroup) { defer wg.Done() for num := range jobs { result := num * num fmt.Printf("Worker %d processed number %d: %d\n", id, num, result) } }

func main() { numbers := []int{1,2,3,4,5,6,7,8,9,10} jobs := make(chan int, len(numbers)) var wg sync.WaitGroup

// Ejecutamos los trabajadores
for i := 1; i <= workerCount; i++ {
	wg.Add(1)
	go worker(i, jobs, &wg)
}

// Enviamos los números para procesar
for _, num := range numbers {
	jobs <- num
}
close(jobs)

wg.Wait()

}