Sobes.tech
Junior — Middle

Кайсы учурларда бир гурутина ишин токтотуп, башкасына башкарууну өткөрөт?

sobes.tech AI

AIден жооп

Go-да, gorutina төмөндөгү учурларда иштөө токтотулат жана башка gorutinaга башкаруу өткөрүлөт:

  • Горутина ачык эле аны блок кылган функцияны чакырганда (мисалы, бош каналдан окуу).
  • runtime.Gosched() ачкыч сөзүн колдонгондо, ал voluntarily процессорду башка gorutinalarга өткөрүп берет.
  • Горутина өзүнүн функциясын аяктагандан кийин (функциядан кайтып келгенде), ал иштөө токтотулат.

Go планировщиги автоматтык түрдө gorutinalардын ортосунда которуп, атаандаштыкты камсыздайт. Мисалы, кирүү/чыгуу операцияларында же каналдан маалымат күтүп жатканда, учурдагы gorutina токтотулат жана башкага өткөрүлөт.