Senior
Горутина деген эмне? Ал кандай түзүлгөн?
sobes.tech AI
AIден жооп
Go тилинде goroutine — бул жеңил аткаруу агымы. Жүйө системалык агымдарынан айырмаланып, goroutine-лер Go runtime тарабынан башкарылат жана өтө кичинекей стекке ээ (башталганда бир нече килобайттан баштап, динамикалык өсүшү мүмкүн). Бул жүздөгөн миңдеген goroutine-лерди бир убакта иштетүүгө жана аз чыгымдар менен ишке ашырууга мүмкүндүк берет.
Goroutine түзүлүшү:
- Goroutine түзүүдө (
goоператору менен), Go планалагы аны даяр иштери кезегине коет. - Go runtime M:N планын колдонуп, M системалык агым (OS агымдары) N goroutine-лерди тейлейт.
- Goroutine-лер runtime деңгээлинде которулат, бул системалык агымдарга караганда тезирек.
- Ар бир агым (M) бир нече goroutine-лерди (N) иштетип, блоктоолордо же зарылчылыкка жараша алмашып турат.
Goroutine түзүү мисалы:
func sayHello() {
fmt.Println("Goroutine'ден салам")
}
func main() {
go sayHello() // goroutine ишке киргизүү
time.Sleep(time.Second) // goroutine ишке ашышы үчүн күтүү
}