Middle — Middle+
Тавзеҳ диҳед дар бораи истифодаи пули кории ҷараёнҳо барои коркарди вазифаҳо дар барномаи бисёртредӣ.
sobes.tech AI
Ҷавоб аз AI
Пул коргарон механизм аст, ки имкон медиҳад, ки шумораи коргарон (goroutines дар Go) барои коркарди вазифаҳо маҳдуд карда шавад. Ба ҷои сохтани goroutine нав барои ҳар вазифа, вазифаҳо ба навбат гузошта мешаванд ва шумораи муайяни коргарон (goroutines) онҳоро пайдарпай кор мекунанд. Ин кӯмак мекунад, ки истифодаи захираҳоро назорат кардан, аз зиёд шудани goroutines пешгирӣ кардан ва самаранокии корро баланд бардорад.
Дар Go, пул метавонад бо истифода аз каналҳои вазифа ва шумораи муайяни goroutines коргарон, ки вазифаҳоро аз канали хонда ва иҷро мекунанд, амалӣ карда шавад:
func worker(id int, jobs <-chan int, results chan<- int) {
for j := range jobs {
// коркарди вазифаи j
results <- j * 2
}
}
func main() {
jobs := make(chan int, 100)
results := make(chan int, 100)
// 3 коргарро оғоз мекунем
for w := 1; w <= 3; w++ {
go worker(w, jobs, results)
}
// 5 вазифа мефиристем
for j := 1; j <= 5; j++ {
jobs <- j
}
close(jobs)
// натиҷаҳоро мегирем
for a := 1; a <= 5; a++ {
fmt.Println(<-results)
}
}
Ин усул имкон медиҳад, ки параллелизм ва захираҳои барнома самаранок идора карда шаванд.