Sobes.tech
Junior — Middle

Ποιος είναι ο ρόλος του μετρητή αδύναμων αναφορών στη διαχείριση μνήμης;

sobes.tech AI

Απάντηση από AI

Ο μετρητής αδύναμων αναφορών (weak reference count) χρησιμοποιείται σε συστήματα διαχείρισης μνήμης με αριθμητική αναφορών (π.χ., σε ARC στο iOS) για την αποτροπή κυκλικών εξαρτήσεων.

Βασική ιδέα:

  • Οι ισχυρές αναφορές (strong references) αυξάνουν τον μετρητή κατοχής του αντικειμένου, αποτρέποντάς το από το να διαγραφεί.
  • Οι αδύναμες αναφορές (weak references) δεν αυξάνουν τον μετρητή κατοχής, επομένως δεν εμποδίζουν τη διαγραφή του αντικειμένου.

Ο ρόλος του μετρητή αδύναμων αναφορών:

  • Επιτρέπει την παρακολούθηση του πόσες αδύναμες αναφορές δείχνουν σε ένα αντικείμενο.
  • Όταν το αντικείμενο διαγράφεται (ο μετρητής ισχυρών αναφορών φτάνει το μηδέν), οι αδύναμες αναφορές μη αυτόματα μηδενίζονται για να αποφευχθούν οι κρεμασμένοι δείκτες.

Παράδειγμα: αν δύο αντικείμενα αναφέρονται μεταξύ τους με ισχυρές αναφορές, ποτέ δεν θα διαγραφούν. Η χρήση αδύναμων αναφορών διακόπτει τον κύκλο, επιτρέποντας στο σύστημα να ελευθερώσει σωστά τη μνήμη.