10

Я очень новичок в GCD и нарезке. Я прошел через учебники и получил очень путаницу. Может ли кто-нибудь объяснить простыми словами. Пожалуйста, не предлагайте ссылки на разработчики Apple.Разница между диспетчерской очередью и NSOperationQueue

Заранее спасибо!

+0

В этом случае я могу предложить ссылки SO :). Надеюсь, вы найдете их полезными ... http://stackoverflow.com/questions/7078658/operation-queue-vs-dispatch-queue-for-ios -приложение 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

У меня есть посмотрел ваш ответ на фоновый процесс в [ЭТО] (http://stackoverflow.com/questions/3762200/how-to-keep-an-iphone-app-running-on-background-fully-operational/17554514#17554514) ссылка . Мне нужно запустить приложение для записи в течение длительного времени. Поверните меня в нужном направлении. – Valli

1

GCD ниже уровня, чем NSOperationQueue, его основным преимуществом является то, что его реализация очень легкий и сосредоточены на алгоритмах и производительности безблокировочного.

В общем, вы должны использовать самый высокий уровень абстракции, который соответствует вашим потребностям. Это означает, что вы обычно должны использовать NSOperationQueue вместо GCD. NSOperationQueue дает вам больше контроля над выполнением ваших операций.

+0

Спасибо за повторное я слышал, что GCD более удобен в использовании, в то время как другой имеет больший вес (основываясь на нескольких учебниках ..) – Valli