
Добро пожаловать! Если вы уже читали предыдущие статьи из этой серии, то наверняка знакомы с многопоточностью в iOS. Мы освоили концепции потоков (Thread/pthread) и научились управлять синхронной и асинхронной обработкой задач в очередях с помощью фреймворка Dispatch. Однако на этом инструменты обеспечения многопоточности не заканчиваются. В этой части мы погрузимся в мир операций, изучим их особенности и поймем, в каких случаях целесообразно прибегать к классу Operation, а когда достаточно функциональности, предоставляемой GCD.
Про многопоточность 1. Thread
Про многопоточность 2. GCD
Про многопоточность 3. Operation
Про многопоточность 4. Async/await (coming soon)
Про многопоточность 5. Железяки (coming soon)
Содержание
Вступление
Operation
BlockOperation
OperationQueue
Operation vs GCD
Заключение
Вступление
Operation — это один из наиболее высокоуровневых инструментов для работы с многопоточностью в iOS. Это мощное API, входящее в состав фреймворка Foundation. По сравнению с GCD, Operation предоставляет более гибкие и настраиваемые средства управления потоками выполнения. Однако для оптимального использования этого инструмента необходимо понимание его особенностей и принципов работы. Давайте в этой статье ближе познакомимся с Operation и рассмотрим, в каких случаях его применение может оказаться наиболее полезным, а также какие преимущества и нюансы он имеет по сравнению с уже изученными нами методами.
Operation
Operation - это мощный инструмент для управления многопоточностью, предоставляемый фреймворком Foundation. Суть Operation заключается в абстракции задачи, которую необходимо выполнить. Он предоставляет не только удобный способ управления жизненным циклом задачи, но и доступ к её состоянию.
Как абстрактный класс, Operation не применяется напрямую, а используется путем создания собственных подклассов операций или использования предоставленных фреймворком Foundation подклассов, таких как BlockOperation (или objc реалзиация NSInvocationOperation).
