-
自动释放池(Autorelease Pools)
每个线程都维护它自己的 NSAutoreleasePool 的栈对象。Cocoa 希望在每个当前线程的栈里面有一个可用的自动释放池。如果一个自动释放池不可用,对象将不会给释放,从而造成内存泄露。对于 Application Kit 的主线程通常它会自动创建并消耗一个自动释放池,但是辅助线程(和其他只有 Foundationd 的程序)在使用 Cocoa前必须自己手工创建。如果你的线程是长时间运行的,那么有可能潜在产生很多自动释放的对象,你应该周期性的销毁它们并创建自动释放池(就像 Application Kit 对主线程那样)。否则,自动释放对象将会积累并造成内存大量占用。如果你的脱离线程没有使用 Cocoa,你不需要创建一个自动释放池。
自动释放池(Autorelease Pools)
最新推荐文章于 2025-11-25 14:22:12 发布
自动释放池(AutoreleasePools)是Cocoa中用于管理自动释放对象的重要机制。每个线程都需要有自己的NSAutoreleasePool栈来避免内存泄漏。对于长时间运行的线程来说,定期创建和销毁自动释放池是非常必要的。
1万+

被折叠的 条评论
为什么被折叠?



