自动释放池(Autorelease Pools)

来源:互联网 发布:xtream path 1.6 mac 编辑:程序博客网 时间:2024/06/05 21:53
  1. 自动释放池(Autorelease Pools)
    每个线程都维护它自己的 NSAutoreleasePool 的栈对象。Cocoa希望在每个当前

    线程的栈里面有一个可用的自动释放池。如果一个自动释放池不可用,对象将不会给释放,从而造成内存泄露。对于Application Kit 的主线程通常它会自动创建并消耗一个自动释放池,但是辅助线程(和其他只有Foundationd 的程序)在使用 Cocoa前必须自己手工创建。如果你的线程是长时间运行的,那么有可能潜在产生很多自动释放的对象,你应该周期性的销毁它们并创建自动释放池(就像Application Kit 对主线程那样)。否则,自动释放对象将会积累并造成内存大量占用。如果你的脱离线程没有使用Cocoa,你不需要创建一个自动释放池。 

0 0
原创粉丝点击