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

}