自动释放池原理

1.什么是自动释放池

自动释放池(autorelease pool)是一种内存自动回收机制。

当你向一个对象发送一个autorelease消息的时候,cocoa就将对象的一个引用放入到最新的自动释放池中(当前线程栈顶位置),他仍然是一个正当的对象,因此自动释放池定义的作用域内的其他对象都可以向他发送消息。

哨兵模式,只要调用autorelease方法,就会把该对象放到离自己最近的自动释放池中(栈顶的释放池)。在引用计数变成0的时候,runloop会把对象销毁。

release (不考虑其他情况),引用计数变成0,runloop会把对象销毁。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、自动释放池的原理及机制 一、O-C当中的内存释放,并不是像java/.net那样有一个自动的释放池,开发人员不...
    youth杨阅读 8,910评论 0 2
  • 1.什么是自动释放池 自动释放池(autorelease pool)是OC的一种内存自动回收机制。当你向一个对象发...
    灬小五灬阅读 5,842评论 0 0
  • 简介 自动释放池(autoreleasepool)是OC的一种内存自动回收机制。正常情况下,创建的变量超出作用域时...
    磊Se阅读 6,223评论 1 8
  • autorelease 实现原理 自动释放池是使用一个双向链表的形式来管理需要该释放的对象。 xcrun -sdk...
    咖啡豆8888阅读 5,542评论 1 6
  • 简介 AutoreleasePool(自动释放池)是OC中的一种内存自动回收机制,它可以延迟加入Autorelea...
    6ffd6634d577阅读 8,715评论 1 11

友情链接更多精彩内容