Не однозначное соединение, нет.Преимущество использования подклассов NSOperation
заключается в том, что вам не нужно управлять многопоточностью самостоятельно.Apple даже (смущает) определяет типичный подкласс NSOperation
(то есть тот, который переопределяет метод -main
) как не параллельный , не потому, что он не поддерживает параллелизм, а потому, что детали параллелизмауправляется суперклассом:
Не путайте терминологию: просто потому, что операция не является одновременной, это не означает, что ее нельзя выполнить одновременно, это просто означает, что у вас нетобрабатывать параллелизм самостоятельно.
В этом смысле подкласс NSOperation
намного больше похож на целевой объект detachNewThreadSelector:toTarget:withObject:
.
в альтернативе NSThread. Альтернатива, если вы хотите контролироватьто, как ведет себя параллелизм, заключается в переопределении -start
и настройке параллелизма по мере необходимости перед вызовом -main
.
Вот очень хороший обзор: Управление параллелизмом с NSOperation