#полезное
🛞 Swift concurrency. Executors, Actors и их связь с потокам
Полезная статья из серии Swift Concurrency, где автор разбирается в недрах:
🟠Как определяется поток, на котором будет выполняться Task?
🟠Почему в рамках одной Task поток может меняться?
🟠Что такое Executor и на какие типы он делится?
🟠За что отвечает TaskExecutor, а за что SerialExecutor?
🟠Как определить текущий Executor по коду?
🟠Как использовать свой самописный Executor?
Компоненты Swift Concurrency
🔎Task и child task — базовые единицы для асинхронных функций.
🔎Job — часть таски между точками прерываний.
🔎Executor — распределяет Job по потокам.
🔎Cooperative thread pool — пул потоков, равный количеству ядер устройства.
Типы Executor'ов
🔴Global concurrent executor — дефолтный планировщик, распределяет Job'ы конкуррентно.
🔴Serial executors — каждый actor имеет свой, выполняет джобы последовательно.
🔴Main Actor executor — выполняет джобы на main thread.
Понимание механизма работы swift concurrency помогает контролировать и прогнозировать использование инструментов.
👉Новости 👉База вопросов
Post #397
70





