Sobes.tech
Senior

Livecoding: ir masīvs ar skaitļiem no 1 līdz 10, jāpacēš tos kvadrātā, paralēli veicot aprēķinus trīs darbinieku (worker) vidū. Darbinieku skaits ir definēts kā konstante. Katram skaitlim parādīt darbinieka ID, kas to apstrādā.

sobes.tech AI

Atbilde no 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("Darbinieks %d apdoroja skaitli %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

// Darbinieku uzsākšana
for i := 1; i <= workerCount; i++ {
	wg.Add(1)
	go worker(i, jobs, &wg)
}

// Nosūtām skaitļus apstrādei
for _, num := range numbers {
	jobs <- num
}
close(jobs)

wg.Wait()

}