开发者社区> 问答> 正文

4、Autoreleasepool的原理?所使用的的数据结构是什么?

4、Autoreleasepool的原理?所使用的的数据结构是什么?

展开
收起
游客bnlxddh3fwntw 2020-04-13 15:30:01 1649 0
1 条回答
写回答
取消 提交回答
  • 自动释放池是一个 AutoreleasePoolPage 组成的一个page是4096字节大小,每个 AutoreleasePoolPage 以双向链表连接起来形成一个自动释放池

    pop 时是传入边界对象,然后对page 中的对象发送release 的消息

    AutoreleasePool的释放有如下两种情况:

    一种是Autorelease对象是在当前的runloop迭代结束时释放的,而它能够释放的原因是系统在每个runloop迭代中都加入了自动释放池Push和Pop。

    手动调用AutoreleasePool的释放方法(drain方法)来销毁AutoreleasePool或者@autoreleasepool{}执行完释放

    2020-04-13 15:30:22
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何使用Tair增强数据结构构建丰富在线实时场景 立即下载
Apache Flink 流式应用中状态的数据结构定义升级 立即下载
低代码开发师(初级)实战教程 立即下载