Junior — Middle
Golang dilində rəqabət modeli necə həyata keçirilir?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində, rəqabət modeli gorutinalar və kanallar üzərində qurulmuşdur.
-
Gorutinalar — bu yüngül axınlar
goaçar sözü ilə başlatılır. Onlar resursların əhəmiyyətli dərəcədə sərf olunmaması ilə funksiyaları paralel icra etməyə imkan verir. -
Kanallar — gorutinalar arasında məlumat mübadiləsi üçün tipli kanallardır və sinxronizasiya və təhlükəsiz məlumat mübadiləsini təmin edir.
Nümunə:
package main
import (
"fmt"
"time"
)
func worker(id int, ch chan string) {
time.Sleep(time.Second)
ch <- fmt.Sprintf("İşçi %d tamamlandı", id)
}
func main() {
ch := make(chan string)
for i := 1; i <= 3; i++ {
go worker(i, ch)
}
for i := 1; i <= 3; i++ {
msg := <-ch
fmt.Println(msg)
}
}
Bu nümunədə, üç gorutina paralel işləyir və nəticəni kanala göndərir, əsas axın isə onu oxuyur.
Beləliklə, Go çoxluq proqramlaşdırmasını sadələşdirir, iş parçaları və sinxronizasiyanın mürəkkəbliyini gizlədir.