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()
}