IOS_BROADCAST Telegram 2034
🐥 Под капотом асинхронных функций. Как работает 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/2034
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/2034

View MORE
Open in Telegram


Telegram News

Date: |

In 2018, Telegram’s audience reached 200 million people, with 500,000 new users joining the messenger every day. It was launched for iOS on 14 August 2013 and Android on 20 October 2013. Invite up to 200 users from your contacts to join your channel The optimal dimension of the avatar on Telegram is 512px by 512px, and it’s recommended to use PNG format to deliver an unpixelated avatar. So far, more than a dozen different members have contributed to the group, posting voice notes of themselves screaming, yelling, groaning, and wailing in various pitches and rhythms. Healing through screaming therapy
from us


Telegram iOS Broadcast
FROM American