簡體   English   中英

我應該使用什么來將頻繁的HTTP請求並行化到iOS應用程序中的REST服務器:GCD或NSThread?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM