Senior
Canlı kodlama: 1-dən 10-a qədər olan ədədlərdən ibarət bir massiv var, onları kvadratına yüksəltmək lazımdır, hesablamaları üç işçi (worker) üzərində paralel şəkildə həyata keçirmək. İşçi sayı bir sabitdə müəyyən edilir. Hər bir ədəd üçün, onu işləyən işçinin ID-sini göstərin.
sobes.tech Süni İntellekt
AI-dan cavab
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("İşçi %d numarayı işledi: %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
// İşçileri başlat
for i := 1; i <= workerCount; i++ {
wg.Add(1)
go worker(i, jobs, &wg)
}
// İşlenecek sayıları gönder
for _, num := range numbers {
jobs <- num
}
close(jobs)
wg.Wait()
}