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

}