Յո՞ր է օպերացիոն համակարգում նոր թել ստեղծվում յուրաքանչյուր գորուտինայի համար։
sobes.tech AI
Պատասխան AI-ից
Ոչ, Go-ում յուրաքանչյուր goroutine-ի համար չի ստեղծվում առանձին օպերացիոն համակարգի թել: Goroutine-ը կարելի է դիտարկել որպես թեթև թել (lightweight thread), որը կառավարում է Go-ի ռանթայմը (runtime scheduler):
Go ռանթայմը օգտագործում է M:N մոդել, որտեղ M-ն օպերացիոն համակարգի թելերի թիվն է, իսկ N-ն goroutine-ների թիվը: Ռանթայմը շատ goroutine-ներ է բաշխում ավելի փոքր թվով օպերացիոն համակարգի թելերի վրա, արդյունավետ օգտագործելով համակարգի ռեսուրսները:
Այսպիսով, հազարավոր և նույնիսկ միլիոնավոր goroutine-ներ կարելի է ստեղծել առանց զգալի հավելյալ ծախսերի, ի տարբերություն համակարգի թելերի, որոնք ավելի ծանր են:
Այսպիսով, goroutine-ները համատեղ ծրագրավորված առաջադրանքներ են մեկ կամ մի քանի օպերացիոն համակարգի թելերի ներսում, և ոչ 1:1 համապատասխանություն։