Senior
Որտե՞ղ են գնում գորուտինները ստեղծման ժամանակ՝ տեղական կամ գլոբալ հերթում Go-ի պլանավորողի կողմից։
sobes.tech AI
Պատասխան AI-ից
Երբ ստեղծվում է goroutine-ը Go-ում, այն տեղադրվում է տեղական գործարկման հերթում (local run queue), որը պատկանում է կոնկրետ M-ին (մեքենա, համակարգային հոսք):
Go-ի ժամանակավայրը օգտագործում է M:N մոդել, որտեղ M-ն համակարգային հոսքերն են, իսկ G-ն goroutine-ները: Յուրաքանչյուր M ունի իր տեղական goroutine-ների հերթը գործարկման համար: Եթե տեղական հերթը լցվի կամ դատարկ լինի, ծրագրավորողը կարող է հավասարակշռել goroutine-ները տեղական և գլոբալ հերթերի միջև:
Այսպիսով, նոր goroutine-ը սկզբում տեղադրվում է ծրագրավորողի տեղական հերթում, ինչը թույլ է տալիս արդյունավետ օգտագործել պրոցեսորի cache-ը և նվազեցնել կոնտեքստի փոխարկման ծախսերը։