首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Runloop和autoreleasePool

Runloop和autoreleasePool
EN

Stack Overflow用户
提问于 2014-01-13 12:09:02
回答 1查看 2K关注 0票数 1

在关于NSAutoReleasePool Class/Reference/Reference.html的Apple引用中,它指出“Application在事件循环的每个周期开始时在主线程上创建一个自动释放池”。

这让我很困惑。关于这个我有三个问题。

1)“应用套件”是什么意思?UIKit?如果“Application”是指UIKit,那么我将创建一个不使用UIkit的应用程序。它会在事件循环的每个循环开始时在主线程上创建一个autoreleasePool吗?

2)“在主线程上”是否意味着在其他线程(而不是mainThread)上会违反此规则?

3)“事件循环”是否意味着运行循环?

添加:我编写了一个演示来测试它。当我创建一个线程时,会自动创建一个autoreleasePool运行循环吗?

然后,在Application MainThread中创建一个taskThread。

结果:

那么,问题2)是“在主线程上”意味着在其他线程(而不是mainThread)上会违反这条规则?在这个演示中,它不是。第二个线程每个运行循环都会自动创建一个autoreleasePool。因为调用了自动释放对象的dealloc方法。

我的演示有什么问题吗?这让我很困惑。

EN

回答 1

Stack Overflow用户

发布于 2014-01-13 12:19:30

  1. 你在看Mac文档。AppKit是UIKit的Macintosh版本。对于自动释放池,两者的逻辑基本相同。
  2. 是。新线程不会自动拥有自动释放池或事件循环。话虽如此,大多数情况下,您不会自己创建新线程。有些东西,如GCD和NSOperation,可以在没有手动操作的情况下完成很多您需要的事情。
  3. 我想为了这个目的,是的
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21090934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档