Sobes.tech
Junior — Middle

როგორ განსაზღვრავს ოპერაციული სისტემა, როდის აღარ გამოიყენება მეხსიერებაში ობიექტი და მისი უსაფრთხოდ გათავისუფლება შესაძლებელია?

sobes.tech AI

პასუხი AI-სგან

სამუშაო გარემო თვითონ პირდაპირ არ მართავს მეხსიერებაში ობიექტების განთავისუფლებას — ეს არის შესრულების გარემოს და პროგრამირების ენის პასუხისმგებლობა. მაგალითად, iOS-ში მეხსიერების მართვა ხორციელდება ARC (ავტომატური მითითებების გამოთვლა) მექანიზმის საშუალებით.

ARC აკონტროლებს ობიექტზე მითითებების რაოდენობას. როდესაც მითითებების გამოთვლის მაჩვენებელი ობიექტზე ნულზე მიაღწევს (ანუ, აღარავინ მიუთითებს მასზე), ობიექტი ავტომატურად თავისუფლდება მეხსიერებიდან.

მაგალითი:

class MyClass {}
var obj: MyClass? = MyClass() // მითითებების რაოდენობა = 1
obj = nil // მითითებების რაოდენობა = 0, ობიექტი თავისუფლდება

ამ გზით, ოპერაციული სისტემა არ განსაზღვრავს, როდის ობიექტი აღარ გამოიყენება — ამას აკეთებს შესრულების გარემო მითითებების რაოდენობის გამოთვლით ან გარბეჯის აგროვით.