我有一个复杂的同步作业,可以通过HTTP对内容进行多次异步调用。每次收到此内容时,它都会询问下一位,依此类推。这些都是在服务器上有数据的大型全部同步作业中进行连接。
这个工作链中可能有12个步骤。它似乎在第5次异步请求后被卡住,请求永远不会回来,它会等待它等待它。我认为它可能与生成太多线程有关,因为如果我在开始时挂起它,它会返回正常。
在我想象的方式中,主线程要求异步内容a。当它以自己的异步时间返回时,它会生成一个新线程,然后请求异步内容b。当它回到自己的甜蜜时间时,会产生一个新的线程然后要求内容c。每次异步请求返回结果时都不会创建新线程吗?
我是否对这些请求进行菊花链接?我在Java开发中非常擅长线程,但我对它们在Obj-C中的工作方式有点困惑。我是否需要使用3个线程的线程池并重用这些线程?
对于高级别的问题感到抱歉,但我相信一些专家可以帮助清除这个问题的神秘之处。
答案 0 :(得分:2)
NSOperationQueues建立在Grand Central Dispatch之上。如果您需要精确控制操作顺序和分派同步请求的能力,您可能需要直接使用GCD。使用其中任何一个,您都不必担心线程创建/管理。您只需根据应用的需要对操作进行排队。
这个恕我直言的Apple文档很好,但你可以在那里找到一些教程。
[编辑:添加了Apple文档的链接]