Co je to slabý odkaz?
Slabý odkaz je odkaz na objekt v paměti, který nezabrání vyčištění objektu pomocí rutin sběru odpadků kvůli jeho spojení s objektem. Tento typ reference se běžně používá k eliminaci úniku paměti, pokud existují zvláštní podmínky, které zabraňují tomu, aby se došlo k normálnímu sběru odpadků. Programovací algoritmy, které používají slabé odkazy, používají kruhový odkaz nebo drží cizí informace ve výhodách mezipaměti nebo speciální struktury. Využití slabých odkazů v těchto typech situací umožňuje vyčištění nevyužitých referenčních objektů a jejich přidružených slabých odkazů.
V počítačovém programování je silná reference obvykle vytvořena ve výchozím nastavení, když je vytvořen objekt, a paměť obsazená objektem zůstává přidělena, pokud silný odkaz zůstává životaschopný. Silný odkaz se stává zrušeným a jeho přidruženýmPaměť objektu je uvolněna krátce po silném odkazu a její objekt je označen jako již nepoužívání programu. V určitých situacích, jako je programování soketu nebo aplikace pro manipulaci s obrazem, třídy používané k vytváření pracovních objektů nemají vestavěnou kapacitu pro ukládání dalších informací, které je nutné konkrétní aplikací. Další podrobnosti pro přechodné objekty, jako jsou připojení nebo obrázky, musí být uloženy v doplňkových objektech mezipaměti a propojeny s přechodnými objekty odkazy. Pokud je namísto silného odkazu použito slabý odkaz, další informace nejsou vázány odkazem a mohou být odstraněny z mezipaměti sběratelem odpadků, jakmile je referenční objekt označen jako neživatelný.
Slabé referenční třídy jsou obvykle k dispozici v jazycích, které jsou rozšířeny subsystémy sběru odpadu, včetně Java, Python, Perl, C#a .NET Framework. V C ++ jsou však programátoři obvykle resPodivitelné pro zajištění čištění paměti. Tento jazyk implementoval třídu inteligentních ukazatelů, která poskytuje některé ze stejných funkcí, které poskytují slabé odkazy a sběr odpadu, což pomáhá snížit úniky paměti způsobené nesprávným čištěním ukazatele.
Pro další usnadnění správy paměti mohou jazyky s odpadky sběru odpadu navíc zlepšit funkčnost jazyka poskytováním jemnějších gradientů odkazů jiných než silný nebo slabý odkaz. Do těchto jazyků mohou být zahrnuty typy dat, jako jsou měkké odkazy a fantomové odkazy, což umožňuje různé úrovně zachycení objektu nebo oznámení o deallokaci. Programátoři, kteří používají jazyky s automatizovaným sběrem odpadků