最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺析Python3中的對象垃圾收集機制

 更新時間:2019年06月06日 09:30:02   作者:若數(shù)  
在Python中,它在每個對象中保持了一個計數(shù)器,用于記錄指向該對象的的引用的個數(shù)。這篇文章主要介紹了Python3中的對象垃圾收集機制,需要的朋友可以參考下

###概述 GC作為現(xiàn)代編程語言的自動內(nèi)存管理機制,專注于兩件事:1. 找到內(nèi)存中無用的垃圾資源 2. 清除這些垃圾并把內(nèi)存讓出來給其他對象使用。 在Python中,它在每個對象中保持了一個計數(shù)器,用于記錄指向該對象的的引用的個數(shù)。一旦這個計數(shù)器為0時,則立即回收該對象,對象占用的內(nèi)存空間將被釋放。

引用計數(shù)

我們可以利用簡單的變量引用和銷毀窺見引用計數(shù)過程。

增加引用計數(shù)

增加引用計數(shù)的方式多種,即對象進(jìn)行引用,那么計數(shù)器都會+1

# 創(chuàng)建第一個引用
a = 3
# 用其他變量名引用
b = a
# 成為一個容器的對象
L = [1, a]
# 作為參數(shù)傳遞
str(a)

減少引用計數(shù)

同理,以下是減少引用計數(shù)的一些方法

# 一個本地引用離開了其作用范圍。比如`str()`函數(shù)結(jié)束時
str(a)
# 對象的別名被顯式銷毀 
del a  
# 對象的一個別名被復(fù)制給其他對象 
a = 'Python'
# 對象從一個窗口對象中移除 
L.remove(a)
# 窗口對象本身被銷毀 
del L

循環(huán)引用問題

什么是循環(huán)引用?A和B相互引用而再沒有外部引用A與B中的任何一個,它們的引用計數(shù)雖然都為1,但顯然應(yīng)該被回收。

# 一個本地引用離開了其作用范圍。比如`str()`函數(shù)結(jié)束時
str(a)
# 對象的別名被顯式銷毀 
del a  
# 對象的一個別名被復(fù)制給其他對象 
a = 'Python'
# 對象從一個窗口對象中移除 
L.remove(a)
# 窗口對象本身被銷毀 
del L

在這個例子中程序執(zhí)行完del語句后,A、B對象已經(jīng)沒有任何引用指向這兩個對象,但這兩個對象卻還各自引用這對象,雖然兩個對象已經(jīng)被 del 了,即我們不能再使用這兩個對象,即垃圾對象,但是他們的引用計數(shù)并沒有減少到零。即根據(jù)引用計數(shù)機制,他們并不會被回收,且會一直駐留在內(nèi)存中,造成內(nèi)存泄漏。為了解決對象的循環(huán)引用問題,而Python引入了 標(biāo)記-清除 和 分代回收 兩種GC機制來解決優(yōu)化此問題。

總結(jié)

以上所述是小編給大家介紹的Python3中的對象垃圾收集機制,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • python實現(xiàn)提取COCO,VOC數(shù)據(jù)集中特定的類

    python實現(xiàn)提取COCO,VOC數(shù)據(jù)集中特定的類

    這篇文章主要介紹了python實現(xiàn)提取COCO,VOC數(shù)據(jù)集中特定的類,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • python分布式系統(tǒng)Celery安裝使用實例講解

    python分布式系統(tǒng)Celery安裝使用實例講解

    這篇文章主要為大家介紹了python分布式系統(tǒng)Celery安裝使用實例講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Python 實現(xiàn)交換矩陣的行示例

    Python 實現(xiàn)交換矩陣的行示例

    今天小編就為大家分享一篇Python 實現(xiàn)交換矩陣的行示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python實現(xiàn)端口掃描器的示例代碼

    Python實現(xiàn)端口掃描器的示例代碼

    本文主要介紹了Python實現(xiàn)端口掃描器,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 如何從Python 程序中運行 PowerShell 腳本

    如何從Python 程序中運行 PowerShell 腳本

    Windows PowerShell 由數(shù)十個內(nèi)置 cmdlet 組成,它們提供了豐富的功能集,本文將重點討論從 Python 代碼執(zhí)行 PowerShell 邏輯,感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • 在Python下嘗試多線程編程

    在Python下嘗試多線程編程

    這篇文章主要介紹了在Python下多線程編程的嘗試,由于GIL的存在,多線程在Python開發(fā)領(lǐng)域一直是個熱門問題,需要的朋友可以參考下
    2015-04-04
  • python樣條插值的實現(xiàn)代碼

    python樣條插值的實現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了python樣條插值的實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Python類的綁定方法和非綁定方法實例解析

    Python類的綁定方法和非綁定方法實例解析

    這篇文章主要介紹了Python類的綁定方法和非綁定方法實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • Python?SQLAlchemy插入日期時間時區(qū)詳解

    Python?SQLAlchemy插入日期時間時區(qū)詳解

    SQLAlchemy是一個功能強大且流行的?Python?庫,它提供了一種靈活有效的與數(shù)據(jù)庫交互的方式,在本文中,我們將了解SQLAlchemy如何更新日期、時間和時區(qū)并將其插入數(shù)據(jù)庫,感興趣的可以了解下
    2023-09-09
  • Python 5種常見字符串去除空格操作的方法

    Python 5種常見字符串去除空格操作的方法

    這篇文章主要給大家分享的是Python 5種常見字符串去除空格操作的方法,包括有strip()方法、rstrip()方法、replace()方法、join()方法+split()方法,下面文章是詳細(xì)內(nèi)容,需要的朋友可以參考一下
    2021-11-11

最新評論

方山县| 宜黄县| 三明市| 望都县| 安徽省| 双桥区| 芒康县| 平陆县| 禹城市| 登封市| 江山市| 都昌县| 建宁县| 凉山| 富川| 察雅县| 西华县| 池州市| 磐安县| 连南| 格尔木市| 麻阳| 遂溪县| 社旗县| 临沭县| 页游| 三都| 石城县| 历史| 水城县| 铜鼓县| 海城市| 聂拉木县| 黄梅县| 长汀县| 彰化县| 大渡口区| 平定县| 大方县| 开江县| 牙克石市|