Sobes.tech
Junior — Middle

რა განსხვავებაა გორუტინასა და სისტემის ნაკადს შორის დავალებების შესრულების კონტექსტში?

sobes.tech AI

პასუხი AI-სგან

Gorutina — бу Go (runtime) ишке ашириш муҳити тарабынан башкарылуучу жеңил иштетүү бирлиги болуп, ал өтө аз эс тутумду талап кылат жана бир убакта көптөгөн ишке киргизилиши мүмкүн. Жүйө чынжыры (thread) — бул операциялык системанын оорураак пландаштыруу бирдиги.

Негизги айырмачылыктар:

  • Gorutina-лар системалык чынжырларга караганда ресурстарга өтө жеңил.
  • Gorutина-лардын пландаштырылышы Go runtime ичинде болот, операциялык тутум тарабынан эмес.
  • Миңдеген gorutina-лар бир убакта иштей алат, ал эми системалык чынжырлар саны адатта азыраак, түзүү жана которуу чыгымдарына байланыштуу.

Gorutina түзүү мисалы:

func милдет() {
    fmt.Println("Милдет аткарылууда")
}

func main() {
    go милдет() // gorutina ишке киргизүү
    time.Sleep(time.Second) // gorutina ишке ашышы үчүн күтүп турабыз
}

Ушул жол менен, gorutina-лар көптөгөн милдеттерди натыйжалуу параллел жүргүзүүгө мүмкүндүк берет, аз чыгым менен.