Jump to content

Недоступная память

(Перенаправлено с «Слабо достижимо »)

В компьютерном программировании недоступная память — это блок , динамически выделяемой памяти где у программы , выделившей память, больше нет доступного указателя , ссылающегося на него. Аналогично, недостижимый объект — это динамически выделенный объект , не имеющий на него доступной ссылки . Неформально, недоступная память — это динамическая память , к которой программа не может обратиться напрямую или добраться до нее, начиная с объекта, к которому она может обратиться напрямую, а затем следуя по цепочке ссылок на указатели.

В реализациях динамического распределения памяти, использующих сборщик мусора , объекты удаляются после того, как они становятся недоступными. Сборщик мусора может определить, доступен ли объект; любой объект, который больше не доступен, может быть освобожден . Многие языки программирования (например, Java , C# , D , Dylan , Julia ) используют автоматическую сборку мусора.

Напротив, когда память становится недоступной в реализациях динамического распределения памяти, требующих явного освобождения, память больше не может быть явно освобождена. Недоступная память в системах, использующих ручное управление памятью, приводит к утечке памяти .

Некоторые сборщики мусора реализуют слабые ссылки . Если объект доступен только через слабые ссылки или цепочки ссылок, включающие слабую ссылку, то объект называется слабо достижимо . Сборщик мусора может рассматривать слабо достижимый граф объектов как недостижимый и освободить его. (И наоборот, ссылки, которые предотвращают сбор мусора для объекта, называются сильными ссылками ; слабо достижимый объект недоступен для любой цепочки, состоящей только из сильных ссылок.) Некоторые объектно-ориентированные языки со сборкой мусора, такие как Java и Python , имеют слабые ссылки. ссылки. Пакет Java java.lang.ref поддерживает мягкие, слабые и фантомные ссылки, что приводит к дополнительным состояниям достижимости объекта soft достижимым и фантомным достижимым .

Недоступная память (в таких языках, как C, которые не освобождаются) часто связана со старением программного обеспечения .

[ редактировать ]
  • Николас, Итан (4 мая 2006 г.). «Понимание слабых ссылок» . java.net. Архивировано из оригинала 19 августа 2010 года . Проверено 1 октября 2010 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: df1bcedf507782f259bc94bbbcfe9abc__1666558080
URL1:https://arc.ask3.ru/arc/aa/df/bc/df1bcedf507782f259bc94bbbcfe9abc.html
Заголовок, (Title) документа по адресу, URL1:
Unreachable memory - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)