Разница между операциями & amp; темы в какао
-
06-07-2019 - |
Вопрос
Я изучаю Objective-C, я буду разрабатывать приложение для обработки видео. Р>
Я читаю руководство разработчика по apple и наткнулся на объекты Operation. Мне просто нужно уточнить, в чем разница между операциями и темы, недостатки, преимущества, варианты использования.
Из того, что я прочитал, работа - это более высокий уровень управления процессом приложения / задачей. NSOperationQueue может обрабатывать операционные ресурсы и параллелизм.
Чего я не понимаю, так это того, что Операция может быть запущена напрямую в потоке, я не совсем понимаю эту концепцию. Я не проясняю разницу между операциями и разработками потоки. р>
Пожалуйста, предоставьте мне как можно больше информации / информации о них.
Большое спасибо всем.
Решение
Разница между NSOperation
и потоками заключается в абстракции. Поток - это низкоуровневая (на уровне операционной системы) конструкция, с помощью которой можно выполнить несколько «потоков». кода одновременно. Хотя Cocoa предоставляет API-интерфейс NSThread
, он, по сути, является оберткой для API-интерфейса pthread
. NSOperation
- это высокоуровневая абстракция задачи, которую вы хотите выполнить. NSOperationQueue
будет планировать выполнение очереди NSOperations
, чтобы максимально использовать доступные ЦП. В многоядерной системе несколько NSOperations
будут выполняться одновременно с использованием пула потоков, которые поддерживает NSOperationQueue
. Преимущество использования этого высокоуровневого API заключается в том, что он позволяет вам думать о «операциях». Вы хотите выполнять, а не как планировать их. Недостаток (и, следовательно, преимущество непосредственного использования NSThread
) заключается в том, что вы имеете больший контроль над планированием потока и связью между потоком и другими потоками (см. - [NSObject executeSelector: withObject) : onThread:] код>). Для элементарных задач, таких как обработка видео,
NSOperation
, вероятно, лучше всего подходит.