Senior
Livecoding: er is een array van getallen van 1 tot 10, deze moeten in het kwadraat worden gezet, waarbij de berekeningen parallel worden uitgevoerd in drie workers. Het aantal workers wordt in een constante gedefinieerd. Voor elk nummer wordt de ID van de worker die het verwerkt weergegeven.
sobes.tech AI
Antwoord van AI
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("Werker %d heeft nummer %d verwerkt: %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
// Start de werkers
for i := 1; i <= workerCount; i++ {
wg.Add(1)
go worker(i, jobs, &wg)
}
// Verstuur de nummers voor verwerking
for _, num := range numbers {
jobs <- num
}
close(jobs)
wg.Wait()
}