如果我想使用线程,是否必须手动将我的应用程序置于多线程模式?

时间:2009-10-20 16:42:35

标签: iphone multithreading

即,我正在创建一个这样的新线程:

[NSThread detachNewThreadSelector:@selector(doSomething) toTarget:self withObject:nil];

这会自动使我的应用程序多线程还是我必须在某处做一些额外的工作?

2 个答案:

答案 0 :(得分:1)

这将使您的应用程序成为多线程,但您需要非常小心。如果你没有正确管理你的线程,你将在未来的道路上遇到很多麻烦。

您应该查看NSOperationQueueNSOperation,看看它们是如何运作的。

您可以一起构建一个多线程应用程序,将并发抽象为队列,并在这些队列上运行单独的操作。

另外,您在新线程上生成的任何方法都需要包装在自动释放池中。默认情况下,新线程没有自己的自动释放池,因此您需要设置自己的。

答案 1 :(得分:1)

这是自动的。在该方法的文档中:

  

如果此线程是第一个线程   在应用程序中分离,这个   方法发布   NSWillBecomeMultiThreadedNotification   对象为零默认值   通知中心。

GUI Cocoa应用程序现在几乎总是多线程的。