Swift,应用程序中的线程数

时间:2015-04-23 15:08:19

标签: ios multithreading swift

我正在为网站制作应用程序。我使用JSON来获取数据。我想加载线程中的所有帖子(1个帖子 - 1个帖子)。我可以制作多少个线程?我应该控制线程数吗?

1 个答案:

答案 0 :(得分:1)

使用Cocoa,您通常不能直接使用Threads。 Grand Central Dispatch(GCD)是一个为您处理此问题的API。您只需将任务划分为可管理的小块,将它们分配到后台队列,其余部分将由您处理。您不必担心创建线程,当前运行的线程数等等。当您在一个(或可能更多)队列上分配足够的工作时,CPU将以最大负载运行。

你也可以使用NSOperationQueue,它能够在某种程度上限制执行或取消当前正在运行的任务(GCD无法实现)。

除非您做任何异常事情,否则无需直接使用NSThread。当您只需要异步执行一个简单的小任务时,请使用GCD。当您需要更多控制时,请使用NSOperationQueue,例如取消提交的任务或设置优先级。在Objective-C中,它的API也更高一些。 GCD是一个C级API,例如它无法捕获ObjC-Exceptions。 NSOperationQueue在内部使用GCD,因此两者都应该同样有效。