Junior — Middle
როგორ განსაზღვრავს ოპერაციული სისტემა, როდის აღარ გამოიყენება მეხსიერებაში ობიექტი და მისი უსაფრთხოდ გათავისუფლება შესაძლებელია?
sobes.tech AI
პასუხი AI-სგან
სამუშაო გარემო თვითონ პირდაპირ არ მართავს მეხსიერებაში ობიექტების განთავისუფლებას — ეს არის შესრულების გარემოს და პროგრამირების ენის პასუხისმგებლობა. მაგალითად, iOS-ში მეხსიერების მართვა ხორციელდება ARC (ავტომატური მითითებების გამოთვლა) მექანიზმის საშუალებით.
ARC აკონტროლებს ობიექტზე მითითებების რაოდენობას. როდესაც მითითებების გამოთვლის მაჩვენებელი ობიექტზე ნულზე მიაღწევს (ანუ, აღარავინ მიუთითებს მასზე), ობიექტი ავტომატურად თავისუფლდება მეხსიერებიდან.
მაგალითი:
class MyClass {}
var obj: MyClass? = MyClass() // მითითებების რაოდენობა = 1
obj = nil // მითითებების რაოდენობა = 0, ობიექტი თავისუფლდება
ამ გზით, ოპერაციული სისტემა არ განსაზღვრავს, როდის ობიექტი აღარ გამოიყენება — ამას აკეთებს შესრულების გარემო მითითებების რაოდენობის გამოთვლით ან გარბეჯის აგროვით.