[英]What I should use for parallelisation of frequent HTTP requests to the REST server in iOS application: GCD or NSThread?
我正在开发一个应用程序,该应用程序必须从服务器中为用户提取新消息。 我已将其实现为计时器,该计时器每2秒触发一次,并调用选择器,该选择器是实现HTTP请求和服务器响应处理的方法。 因此,我认为在主线程中执行此操作是一个坏主意。
我没有在iOS中使用多线程的经验。 所以我想知道什么适合并行执行此任务:GCD或NSThread?
您应该尽可能在API堆栈上工作。 这样,您可以专注于编程功能而不是管理线程。 GCD使用系统已经运行的线程,它比管理自己的代码效率更高。 它甚至更好的瞄准封装你的网络进入NSOperation
当时的可以放在一个NSOperationQueue
,这些将在一个或多个后台线程来执行,不论该系统认为是当前电源状态和类似的其他东西好一些。
NSOperation
优于纯GCD方法的好处是可以取消操作。 一旦将某个区块提交给GCD,无论如何它都必须运行。
如果要将HTTP请求封装在NSOperation
您可能想知道有人已经为您完成了此操作。 AFNetworking
是最广为人知的iOS网络堆栈之一,并使用NSOperation
作为基础来构建,因此很容易实现多线程。
一个好主意是尝试将解析代码封装到NSOperation
,然后当您的网络请求操作返回时,您可以创建解析操作实例并将其放在另一个队列中以在后台进行处理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.