Junior — Middle
Kuidas määrab automaatne prügi kogumise mehhanism, et objekt ei ole enam kättesaadav ja tuleb eemaldada?
sobes.tech AI
Vastus AI-lt
Go automaatne prügikorjamise (GC) mehhanism määrab, et objekt ei ole kättesaadav, tuginedes selle kättesaadavusele juurekogust (root set). Juurekogud on globaalmuutujad, praeguste goroutine'ide kohalikud muutujad ja kutsesildu. Kui objekt ei ole kättesaadav nende juurekogude kaudu viidete ahelast, loetakse seda 'surnuks' ja võib eemaldada.
Näide: kui muutuja viitab objekti, peab GC seda elusaks. Kui viide eemaldatakse või väljub ulatusest, muutub objekt kättesaamatuks ja võib koguda.
Seega kontrollib GC perioodiliselt objekti graafi, alustades juurtest, ja märgib kõik kättesaadavad objektid. Kõik teised objektid loetakse prügi ja vabastatakse.