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'де чакырылат, бул эки тапшырманын параллелдүү аткарылышына мүмкүндүк берет.