10

我對GCD和線程很新。我已經閱讀了教程並且非常困惑。 可以用簡單的單詞解釋一下。請不要建議蘋果開發者鏈接..調度隊列和NSOperationQueue之間的區別

在此先感謝!

+0

那麼在這種情況下,我可以建議SO鏈接:) ..在這裏希望你找到它們有用... http://stackoverflow.com/questions/7078658/operation-queue-vs-dispatch-queue-for-ios -application http://stackoverflow.com/questions/10373331/nsoperation-vs-grand-central-dispatch http://stackoverflow.com/questions/11676629/ios-dispatch-async-vs-nsoperationqueue和兩個外部鏈接: - http://maniacdev.com/2010/03/easier-threading-with-nsoperation-for-better-performance http://blog.spec-india.com/difference-between-nsthread-and-nsoperation – IronManGill

回答

13

NSOperationQueue可能更適合長時間運行的操作,這些操作可能需要取消或具有複雜的依賴關係。對於應該具有最小性能和內存開銷的短任務,GCD調度隊列更好。

可以取消已經在NSOperationQueue中入隊的操作(只要操作支持它)。當你將一個塊排入GCD調度隊列時,它肯定會在某個時刻執行。

檢查下面的鏈接,它可能對你有幫助。

Operation Queue vs Dispatch Queue for iOS Application

+0

我有在[THIS]中看到了關於後臺進程的答案(http://stackoverflow.com/questions/3762200/how-to-keep-an-iphone-app-running-on-background-fully-operational/17554514#17554514)link 。我需要長時間運行記錄器應用程序。以正確的方式指向我 – Valli

1

GCD是級別低於NSOperationQueue,它的主要優點是,它的實現是非常輕量級的,側重於無鎖算法和性能。

通常,您應該使用適合您需求的最高抽象級別。這意味着您通常應該使用NSOperationQueue而不是GCDNSOperationQueue可以讓您更好地控制操作的執行方式。

+0

感謝您的再次我聽說GCD使用起來比較方便,而另一種則頭重腳輕(基於很少的教程..) – Valli

相關問題