iphone / objective-c dev中有多少个线程太多了

时间:2011-04-12 11:28:09

标签: iphone objective-c ios4 iphone-sdk-3.0 nsthread

我有一个复杂的同步作业,可以通过HTTP对内容进行多次异步调用。每次收到此内容时,它都会询问下一位,依此类推。这些都是在服务器上有数据的大型全部同步作业中进行连接。

这个工作链中可能有12个步骤。它似乎在第5次异步请求后被卡住,请求永远不会回来,它会等待它等待它。我认为它可能与生成太多线程有关,因为如果我在开始时挂起它,它会返回正常。

在我想象的方式中,主线程要求异步内容a。当它以自己的异步时间返回时,它会生成一个新线程,然后请求异步内容b。当它回到自己的甜蜜时间时,会产生一个新的线程然后要求内容c。每次异步请求返回结果时都不会创建新线程吗?

我是否对这些请求进行菊花链接?我在Java开发中非常擅长线程,但我对它们在Obj-C中的工作方式有点困惑。我是否需要使用3个线程的线程池并重用这些线程?

对于高级别的问题感到抱歉,但我相信一些专家可以帮助清除这个问题的神秘之处。

1 个答案:

答案 0 :(得分:2)

NSOperationQueues建立在Grand Central Dispatch之上。如果您需要精确控制操作顺序和分派同步请求的能力,您可能需要直接使用GCD。使用其中任何一个,您都不必担心线程创建/管理。您只需根据应用的需要对操作进行排队。

这个恕我直言的Apple文档很好,但你可以在那里找到一些教程。

[编辑:添加了Apple文档的链接]

http://developer.apple.com/library/ios/#documentation/General/Conceptual/ConcurrencyProgrammingGuide/Introduction/Introduction.html