中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

weakreference如何回收

發布時間:2021-09-22 11:57:56 來源:億速云 閱讀:153 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關weakreference如何回收,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

  在計算機程序設計中,weakreference弱引用與強引用相對,是指不能確保其引用的對象不會被垃圾回收器回收的引用。一個對象若只被弱引用所引用,則被認為是不可訪問(或弱可訪問)的,并因此可能在任何時刻被回收。一些配有垃圾回收機制的語言,如Java、C#、Python、Perl、Lisp等都在不同程度上支持弱引用。

  weakreference垃圾回收

  垃圾回收用來清理不會再使用的對象,從而降低內存泄露和數據損壞的可能性。垃圾回收主要有兩種類型:追蹤和引用計數。引用計數會記錄給定對象的引用個數,并在引用個數為零時收集該對象。由于一次僅能有一個對象被回收,引用計數無法回收循環引用的對象。一組相互引用的對象若沒有被其它對象直接引用,并且不可訪問,則會永久存活下來。一個應用程序如果持續地產生這種不可訪問的對象群組,就會發生內存泄漏。在對象群組內部使用弱引用(即不會在引用計數中被計數的引用)有時能避免出現引用環,因此弱引用可用于解決循環引用的問題。如Apple的Cocoa框架就推薦使用這種方法,具體為,在父對子引用時使用強引用,子對父引用時使用弱引用,從而避免了循環引用。

  程序對一些對象只進行弱引用,通過此法可以指明哪些對象是不重要的,因此弱引用也用于盡量減少內存中不必要的對象存在的數量。

  weakreference變種

  有些語言包含多種強度的弱引用。例如Java,定義了軟引用、弱引用和虛引用,引用強度依次遞減。每種引用都有相對應的概念。垃圾回收器(GC)通過判斷對象的可訪問性類型來確定何時回收該對象。當一個對象是軟可訪問的,垃圾回收器就可以安全回收這個對象,但如果垃圾回收器認為JVM還能空出可用內存(比如JVM還有大量未使用的堆空間),則有可能不會立刻回收軟可訪問的對象。但對于弱可訪問的對象,一旦被垃圾回收器注意到,就會被回收。和其他引用種類不同,虛引用無法跟蹤。但另一方面,虛引用提供了一種機制,當一個對象被回收時程序可以得到通知。一些未配有垃圾回收機制的語言,比如C++,也提供強/弱引用的功能,以作為對垃圾回收庫的支持。在C++中,普通指針可看做弱引用,智能指針可看做強引用,盡管指針不能算"真正"的弱引用,因為弱引用應該能知道何時對象變成不可訪問的了。

關于“weakreference如何回收”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宜昌市| 修水县| 兴国县| 商水县| 邢台县| 洛南县| 聂拉木县| 白水县| 钟山县| 北票市| 井研县| 新干县| 个旧市| 赤壁市| 嘉禾县| 姜堰市| 金沙县| 和田市| 卢氏县| 伊金霍洛旗| 井陉县| 峨边| 和田市| 当雄县| 元江| 武宁县| 靖西县| 岳普湖县| 临沂市| 巨野县| 香港| 寻乌县| 乌拉特后旗| 军事| 治县。| 旅游| 阆中市| 乐业县| 丽江市| 喀什市| 会宁县|