Sobes.tech
Senior

Livecoding: 1 dan 10 gacha sonlardan iborat massiv bor, ularni kvadratga ko'tarish kerak, hisoblashlarni uchta ishchi (worker) yordamida parallel tarzda bajarish. Workerlar soni konstantada belgilangan. Har bir raqam uchun, uni ishlovchi worker ID sini ko'rsat.

sobes.tech AI

AIdan javob

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("Ishchi %d raqamni ishladi: %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

// Ishchilarni ishga tushiramiz
for i := 1; i <= workerCount; i++ {
	wg.Add(1)
	go worker(i, jobs, &wg)
}

// Ishlash uchun raqamlarni yuboramiz
for _, num := range numbers {
	jobs <- num
}
close(jobs)

wg.Wait()

}