Junior — Middle
Кадом намудҳои иҷрои вазифаҳои параллелро медонед?
sobes.tech AI
Ҷавоб аз AI
Go тилида параллелдик тапшырмаларды бир неча усул менен ишке ашириш мумкин:
-
Goroutines —
goкалит сўзи билан бошланадиган енгил ўқимлар. Улар функцияларни параллел бажаришга имкон беради. -
Каналлар — goroutine’лар орасида коммуникация ва синхронлаш учун қўлланади, маълумотларни хавфсиз ўтказишни таъминлайди.
-
Ишчи пуллари — бир гуруҳ goroutine’лар, улар навбатдан вазифалар олиб, уларни ишлайди, бу бир вақтнинг ўзида ишлаётган goroutine’лар сонини назорат қилишга ёрдам беради.
-
sync.WaitGroup — goroutine гуруҳининг якунланишини кутмоқ учун.
Goroutine’ни ишга тушириш ва канал орқали маълумот юбориш мисоли:
ch := make(chan int)
// Goroutine’ни ишга тушириш
go func() {
ch <- 42 // қийматни каналга юбориш
}()
// Қийматни каналдан олиш
val := <-ch
fmt.Println(val)