10

Sono molto nuovo per GCD e threading. Ho seguito le esercitazioni e ho avuto molta confusione. Qualcuno può spiegare con parole semplici. Per favore non suggerire link per sviluppatori Apple ..Differenza tra Dispatch Queue e NSOperationQueue

Grazie in anticipo!

+0

Bene in tal caso, posso suggerire collegamenti SO :) .. Qui spero che li trovi utili ... 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 E due collegamenti esterni: - http://maniacdev.com/2010/03/easier-threading-with-nsoperation-for-better-performance http://blog.spec-india.com/difference-between-nsthread-and-nsoperation – IronManGill

risposta

13

NSOperationQueue può essere più adatto per operazioni di lunga durata che potrebbero dover essere annullate o avere dipendenze complesse. Le code di invio GCD sono migliori per le attività brevi che dovrebbero avere prestazioni minime e sovraccarico della memoria.

È possibile annullare le operazioni che sono state accodate in un NSOperationQueue (a condizione che le operazioni lo supportino). Quando accodati a un blocco in una coda di invio GCD, verrà sicuramente eseguito a un certo punto.

controllare il collegamento sottostante, potrebbe essere utile a voi.

Operation Queue vs Dispatch Queue for iOS Application

+0

Ho ho visto la tua risposta riguardante il processo in background in [QUESTO] (http://stackoverflow.com/questions/3762200/how-to-keep-an-iphone-app-running-on-background-fully-operational/17554514#17554514) link . Devo eseguire un'applicazione di registrazione per un lungo periodo di tempo. Indicami nel modo giusto – Valli

1

GCD è di livello inferiore NSOperationQueue, il suo principale vantaggio è che la sua attuazione è molto leggero e focalizzata su algoritmi e prestazioni senza serratura.

In generale, è necessario utilizzare il livello più alto di astrazione adatto alle proprie esigenze. Ciò significa che di solito devi utilizzare NSOperationQueue anziché GCD. NSOperationQueue offre un maggiore controllo sul modo in cui vengono eseguite le operazioni.

+0

Grazie per il ri Ho sentito che GCD è più comodo da usare mentre l'altro ha un peso eccessivo (basato su poche esercitazioni ..) – Valli