Sobes.tech
Junior — Middle

Ի՞նչ դեպքերում մի գորուտին ավարտում է իր կատարումը և փոխանցում կառավարումը մյուսին։

sobes.tech AI

Պատասխան AI-ից

Go-ում, gorutina ավարտում է իր կատարումը և փոխանցում է վերահսկողությունը մյուս gorutina-ին հետևյալ դեպքերում՝

  • Երբ gorutina հստակորեն կանչում է ֆունկցիա, որը նրան խոչընդոտում է (օրինակ, դատարկ ալիքից ընթերցում):
  • Երբ օգտագործվում է բանալի բառ runtime.Gosched(), որը կամավորորեն հանձնում է պրոցեսորին այլ gorutina-ներին:
  • Երբ gorutina ավարտում է իր ֆունկցիան (վերադառնում է ֆունկցիայից), այն դադարում է գործել:

Go-ի gorutina-ների պլանավորիչը ավտոմատ կերպով փոխում է գործարկումը gorutina-ների միջև՝ ապահովելով մրցակցությունը: Օրինակ, երբ բլոկադան է տեղի ունենում մուտք/ելք գործողությունների կամ տվյալների սպասման ժամանակ, ընթացիկ gorutina-ն դադարեցվում է, և վերահսկողությունը փոխանցվում է մյուսին։