Question

J'apprends Objective-C, je vais développer une application de traitement vidéo.

Je lis le guide du développeur sur apple et je suis tombé sur un objet Operation. J'ai juste besoin de quelques éclaircissements sur la différence entre les opérations & amp; threads, inconvénients, avantages, cas d'utilisation.

D'après ce que j'ai lu, l'opération correspond au niveau supérieur de gestion des processus / tâches d'application. NSOperationQueue peut gérer les ressources d'opération et la simultanéité.

Ce que je ne comprends pas, c’est que Operation peut être directement exécuté dans un thread, je ne suis pas très clair sur ce concept. Je ne suis pas clair sur la différence entre les opérations & amp; discussions.

Donnez-moi le plus d'informations / antécédents possibles sur les deux.

Merci beaucoup à tous.

Était-ce utile?

La solution

La différence entre NSOperation et les threads est l’abstraction. Un thread est une construction de bas niveau (au niveau du système d'exploitation) permettant d'exécuter plusieurs "threads". de code simultanément. Bien que Cocoa fournisse l’API NSThread , il s’agit essentiellement d’un wrapper sur l’API pthread . NSOperation est une abstraction de niveau supérieur d'une tâche que vous souhaitez exécuter. NSOperationQueue planifiera l'exécution d'une file d'attente de NSOperations de manière à utiliser au maximum le ou les processeurs disponibles. Sur un système multicœur, plusieurs NSOperations seront exécutés simultanément à l'aide d'un pool de threads gérés par NSOperationQueue . L’utilisation de cette API de niveau supérieur présente l’avantage de vous permettre de réfléchir aux "opérations". vous souhaitez effectuer plutôt que de les planifier. L’inconvénient (et donc l’utilisation directe de NSThread ) est que vous avez plus de contrôle sur la planification du thread et sur la communication entre le thread et les autres threads (voir - [NSObject performSelector: withObject : onThread:] ). Pour les tâches atomiques, telles que le traitement vidéo, NSOperation est probablement la meilleure solution.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top