Diferencia entre operaciones y amp; hilos en cacao
-
06-07-2019 - |
Pregunta
Estoy aprendiendo Objective-C, desarrollaré una aplicación de procesamiento de video.
Estoy leyendo la guía del desarrollador sobre apple y me encontré con objetos de Operation. Solo necesito algunas aclaraciones sobre la diferencia entre operaciones y amp; hilos, desventajas, ventajas, casos de uso.
Por lo que leí, la operación es un nivel más alto de proceso de aplicación / gestión de tareas. NSOperationQueue puede manejar recursos de operación y concurrencia.
Lo que no entiendo es que Operation se puede ejecutar directamente en un hilo, no tengo muy claro este concepto. No debo aclarar la diferencia entre operaciones y amp; hilos.
Proporcione la mayor cantidad de información / antecedentes sobre los dos posible.
Muchas gracias a todos.
Solución
La diferencia entre NSOperation
y los hilos es de abstracción. Un subproceso es una construcción de bajo nivel (nivel de sistema operativo) con la que ejecutar múltiples subprocesos " de código al mismo tiempo. Aunque Cocoa proporciona la API NSThread
, es esencialmente un contenedor en la API pthread
. NSOperation
es una abstracción de nivel superior de una tarea que desea ejecutar. NSOperationQueue
programará la ejecución de una cola de NSOperations
para utilizar al máximo las CPU disponibles. En un sistema multinúcleo, se ejecutarán varias NSOperations
simultáneamente utilizando un grupo de subprocesos que mantiene NSOperationQueue
. La ventaja de utilizar esta API de nivel superior es que te permite pensar en las "operaciones". desea realizar en lugar de cómo programarlos. La desventaja (y por lo tanto la ventaja de usar NSThread
directamente) es que tiene más control sobre la programación del hilo y la comunicación entre el hilo y otros hilos (vea - [NSObject performSelector: withObject : onThread:]
). Para tareas atómicas, como el procesamiento de video, NSOperation
es probablemente la mejor opción.