Sobes.tech
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 go aç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.