IOS_BROADCAST Telegram 2032
🐥 Под капотом асинхронных функций. Как работает Swift Concurrency
Swift Concurrency становится неотъемлемой частью iOS-приложений. Но сессии WWDC часто оставляют вопросы о деталях реализации без ответов. Статья поможет понять, как работает параллелизм Swift

Асинхронные функции
🔵Асинхронный контекст означает, что функция находится внутри асинхронной функции или замыкания
🔵Синхронный контекст по умолчанию, большая часть кода выполняется в нем
🔵Для переключения на асинхронный контекст используются неструктурированные параллельные задачи

Async → await
🔵Ожидание позволяет писать асинхронный код в более последовательном виде
🔵Ожидание освобождает поток для других задач
🔵Продолжение хранит состояние выполнения асинхронной функции

Tasks
🔵Задачи выполняют асинхронные функции, как потоки выполняют синхронные
🔵Задачи могут быть созданы явно или неявно
🔵Задачи могут находиться в трех состояниях: приостановленный, запущенный, планируемый

Jobs
🔵Работы происходят между точками приостановки в рамках задачи.
🔵Каждое асинхронное задание состоит из трех частей: перед работой, ожидание асинхронной работы, после работы
🔵Асинхронная работа разбивает функции на синхронные блоки, каждый из которых представляет собой асинхронную работу
🔵Задания создаются во время выполнения, но их структура определяется при компиляции
🔵Задания выполняются последовательно, с возможностью приостановки

Actors
🔵Акторы изолируют вызовы асинхронных функций, позволяя безопасно делиться состоянием с другими задачами
🔵Акторы обеспечивают потокобезопасный доступ к изменяемому состоянию
🔵Исполнители управляют приоритетами работы и организуют потоки для выполнения заданий

Executors
🔵Swift не предоставляет явный планировщик, но среда выполнения неявно ставит задания в очередь к исполнителям
🔵Контекст выполнения определяет, какой исполнитель должен выполнять задание
🔵Фактическая точка приостановки возникает при переключении контекстов выполнения

Совместный пул потоков (CTP)
🔵CTP ограничивает количество потоков количеством ядер процессора, что предотвращает перегрузку ресурсов
🔵Основной поток обрабатывает обновления пользовательского интерфейса и может быть переведен в спящий режим при отсутствии работы

Параллелизм Swift устраняет проблемы с обратным вызовом и предлагает более понятный синтаксис. Для полного понимания параллелизма в Swift требуется время и практика
Please open Telegram to view this post
VIEW IN TELEGRAM



tgoop.com/ios_broadcast/2032
Create:
Last Update:

🐥 Под капотом асинхронных функций. Как работает Swift Concurrency
Swift Concurrency становится неотъемлемой частью iOS-приложений. Но сессии WWDC часто оставляют вопросы о деталях реализации без ответов. Статья поможет понять, как работает параллелизм Swift

Асинхронные функции
🔵Асинхронный контекст означает, что функция находится внутри асинхронной функции или замыкания
🔵Синхронный контекст по умолчанию, большая часть кода выполняется в нем
🔵Для переключения на асинхронный контекст используются неструктурированные параллельные задачи

Async → await
🔵Ожидание позволяет писать асинхронный код в более последовательном виде
🔵Ожидание освобождает поток для других задач
🔵Продолжение хранит состояние выполнения асинхронной функции

Tasks
🔵Задачи выполняют асинхронные функции, как потоки выполняют синхронные
🔵Задачи могут быть созданы явно или неявно
🔵Задачи могут находиться в трех состояниях: приостановленный, запущенный, планируемый

Jobs
🔵Работы происходят между точками приостановки в рамках задачи.
🔵Каждое асинхронное задание состоит из трех частей: перед работой, ожидание асинхронной работы, после работы
🔵Асинхронная работа разбивает функции на синхронные блоки, каждый из которых представляет собой асинхронную работу
🔵Задания создаются во время выполнения, но их структура определяется при компиляции
🔵Задания выполняются последовательно, с возможностью приостановки

Actors
🔵Акторы изолируют вызовы асинхронных функций, позволяя безопасно делиться состоянием с другими задачами
🔵Акторы обеспечивают потокобезопасный доступ к изменяемому состоянию
🔵Исполнители управляют приоритетами работы и организуют потоки для выполнения заданий

Executors
🔵Swift не предоставляет явный планировщик, но среда выполнения неявно ставит задания в очередь к исполнителям
🔵Контекст выполнения определяет, какой исполнитель должен выполнять задание
🔵Фактическая точка приостановки возникает при переключении контекстов выполнения

Совместный пул потоков (CTP)
🔵CTP ограничивает количество потоков количеством ядер процессора, что предотвращает перегрузку ресурсов
🔵Основной поток обрабатывает обновления пользовательского интерфейса и может быть переведен в спящий режим при отсутствии работы

Параллелизм Swift устраняет проблемы с обратным вызовом и предлагает более понятный синтаксис. Для полного понимания параллелизма в Swift требуется время и практика

BY iOS Broadcast









Share with your friend now:
tgoop.com/ios_broadcast/2032

View MORE
Open in Telegram


Telegram News

Date: |

fire bomb molotov November 18 Dylan Hollingsworth yau ma tei How to Create a Private or Public Channel on Telegram? More>> Add up to 50 administrators Don’t publish new content at nighttime. Since not all users disable notifications for the night, you risk inadvertently disturbing them.
from us


Telegram iOS Broadcast
FROM American