Domanda

Sto imparando Objective-C, svilupperò un'applicazione di elaborazione video.

Sto leggendo la guida per sviluppatori su apple e mi sono imbattuto in oggetti Operation. Ho solo bisogno di alcuni chiarimenti quale sia la differenza tra operazioni e amp; discussioni, svantaggi, vantaggi, casi d'uso.

Da quello che ho letto, il funzionamento è un livello più alto di gestione delle applicazioni / attività. NSOperationQueue può gestire risorse operative e concorrenza.

Quello che non capisco è che l'Operazione può essere eseguita direttamente in un thread, non sono troppo chiaro su questo concetto. Non voglio chiarire la differenza tra operazioni e amp; fili.

Per favore, forniscimi quante più informazioni / informazioni possibili sui due.

Grazie mille a tutti.

È stato utile?

Soluzione

La differenza tra NSOperation e discussioni è di astrazione. Un thread è un costrutto di basso livello (a livello di sistema operativo) con cui eseguire più "thread" di codice contemporaneamente. Sebbene Cocoa fornisca l'API NSThread , è essenzialmente un wrapper nell'API pthread . NSOperation è un'astrazione di livello superiore di un'attività che si desidera eseguire. NSOperationQueue pianificherà l'esecuzione di una coda di NSOperations in modo da utilizzare al massimo le CPU disponibili. Su un sistema multi-core, più NSOperations verranno eseguiti simultaneamente usando un pool di thread che NSOperationQueue mantiene. Il vantaggio di utilizzare questa API di livello superiore è che ti consente di pensare alle operazioni "quotate" desideri esibirti piuttosto che come programmarli. Lo svantaggio (e quindi il vantaggio dell'utilizzo diretto di NSThread ) è che hai un maggiore controllo sulla pianificazione del thread e sulla comunicazione tra il thread e altri thread (vedi - [NSObject performSelector: withObject : onThread:] ). Per le attività atomiche, come l'elaborazione video, NSOperation è probabilmente la soluzione migliore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top