iOS - autoreleasePool

是什么

根据官方文档NSAutoreleasePool 定义

NSAutoreleasePool:
An object that supports Cocoa’s reference-counted memory management system.
本质是一个1. 对象,可以管理cocoa 对象内存的引用计数

autorelease pool :
An autorelease pool stores objects that are sent a release message when the pool itself is drained.
autorelease pool 里存放一些对象, 当pool释放的时候,会给pool里的这些对象发送release消息

官方说明:

  • autorelease pool是个对象
  • 在池子释放时,对池中的对象发送release消息(只是引用技术-1,是否释放对象不确定)
  • 系统在主线程的每次runloop开始时创建pool。runloop结束时销毁pool,从而释放
  • 每个线程维护他自己的autoreleasePool对象堆栈,当线程终止时,它会自动清空所有与之关联的autorelease pools

objc_autoreleasePoolPush源码流程走向

未命名文件-4.png

参考

官方文档NSAutoreleasePool

你可能感兴趣的:(iOS - autoreleasePool)