Sobes.tech
Senior

Canlı kodlama: 1'den 10'a kadar sayılardan oluşan bir dizi var, bunları karesine yükseltmek gerekiyor, hesaplamaları üç işçi (worker) üzerinde paralel hale getirerek. İşçi sayısı bir sabit olarak belirlenmiş. Her sayı için, onu işleyen işçinin ID'sini göster.

sobes.tech yapay zeka

AI'dan gelen yanıt

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 numarasını 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()

}