iOS autorelease 对象的释放mrc

1 -》在主线程中 和 存在runloop的子线程中
在runloop启动时 会自动的创建自动释放池用来存储autorelease对象,runloop即将睡眠时调用 pool 的 pop 和push方法,释放旧池,创建新池。在runloop结束时会调用方法pop旧池。所有在在主线程中 和 存在runloop的子线程中直接用autorelease是没有问题的。
2 -》在不存在runloop的子线程中
因为autorelease对象要加入pool中,每一个线程都会维护自己的 autoreleasepool 堆栈。换句话说 autoreleasepool 是与线程紧密相关的,每一个 autoreleasepool 只对应一个线程。autorelease对象也就加入到线程对应的 autoreleasepool 了。

你可能感兴趣的:(iOS autorelease 对象的释放mrc)