Sobes.tech
Junior — Middle

Go тилинде бир нече агымдарды башкаруу кандай ишке ашырылат?

sobes.tech AI

AIден жооп

Go тилинде көптөгөн аткаруу агымдарын башкаруу goroutine'лер аркылуу жүргүзүлөт. Goroutine — бул жеңил агым, ал функцияны чакырудан мурун go ачкыч сөзү менен башталат. Goнин runtime ичиндеги пландагыч goroutine'лердин аткарылышын башкарат жана аларды системалык агымдарга бөлүштүрөт.

Goroutine'лер ортосунда синхрондоштуруу жана маалымат алмашуу үчүн көбүнчө каналдар (channels) колдонулат, алар коопсуз маалымат өткөрүүнү камсыз кылат жана жарыш шарттарын алдын алат.

Ички эки goroutine'ди ишке киргизүү мисалы:

package main

import (
    "fmt"
    "time"
)

func say(s string) {
    for i := 0; i < 3; i++ {
        fmt.Println(s)
        time.Sleep(100 * time.Millisecond)
    }
}

func main() {
    go say("world") // goroutine'ди ишке киргизүү
    say("hello")   // негизги агымда иштейт
}

Бул мисалда, say функциясы өзүнчө goroutine'де чакырылат, бул эки тапшырманын параллелдүү аткарылышына мүмкүндүк берет.