python GC RAII GIL

本文探讨了Python中的RAII概念,指出with语句和finally子句是实现RAII的工具。Python内存管理主要依赖引用计数,对于循环引用则通过GC(垃圾收集器)进行处理,GC采用标记-清除和分代收集策略。文章还提到了GIL(全局解释器锁),解释了其在CPython中的作用和存在的原因,以及为何难以去除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • RAII
  • python内存管理
  • __del__
  • GIL

RAII

RAII 是一个资源管理工具,约束在代码执行走出特定作用域之后,不管是正常流程,还是异常流程,都不会漏掉资源的释放,可以极大简化代码编写(不用每个分支都增加资源释放逻辑)和资源管理。多数情况下,都应该尽早释放资源,而不应该依赖垃圾收集不可控的生命周期,比如文件描述符、数据库连接。RAII可以严格绑定资源的有效期与变量的生命周期。

  • python 在 RAII 对应的工具是 with 语句,和 try.. catch 语句中的 finally 子句。
  • go 里面可以用 defer

python with 语句实现RAII

python内存管理

python内存管理采用的是引用计数机制为主,大部分的内存资源可以做到立即释放。针对存在循环引用的情况,需要通过GC来做内存回收(引用计数不算在GC里面)。python的GC很简单,主要是标记-清除和分代收集,具体标记-清除和分代收集细节见

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值