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.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top