Асинхронное программирование
Асинхронное программирование (англ. asynchronous programming) — концепция программирования, согласно которой результат выполнения функции становится доступен не сразу, а по истечении некоторого времени посредством асинхронного вызова, нарушающего привычный последовательный порядок работы программы.
В отличие от синхронного программирования, где компьютерные инструкции исполняются поочерёдно и выполнение системных операций (например, обращение к устройствам ввода-вывода, жёсткому диску, сетевые запросы) блокирует следующие действия в потоке исполнения, при асинхронном программировании длительные операции запускаются без ожидания завершения и не прерывают дальнейшее выполнение программы[1][2].
Применение асинхронного программирования позволяет освободить поток исполнения, из которого запущена длительная операция, что способствует экономии ресурсов[2] и даёт возможность параллельных вычислений. Асинхронность используется в оптимизации высоконагруженных приложений, связанных с частым ожиданием реакции операционной системы[1]. Для программ с графическим интерфейсом пользователя асинхронные вызовы обеспечивают быстрый отклик пользовательского интерфейса[3], а серверным приложениям — даёт лучшие возможности масштабируемости по сравнению с синхронными реализациями[3].
Модели асинхронного программирования реализованы во многих современных языках программирования, таких как C#[4][5][3][6][7], JavaScript[8], Python[9][10][11] и других.
Примечания
Литература
- Арыков С. Б., Малышкин В. Э. Алгоритмы конструирования асинхронных программ заданной степени непроцедурности методом группировки // Вестн. Новосиб. гос. ун-та. Серия: Информационные технологии. — 2009. — Т. 7, вып. 1. — С. 3–15.
- Богатырев Р. Об автоматном и асинхронном программировании // Открытые системы. СУБД. — 2001. — № 3. — С. 68–69.
- Татьяна Валерьевна Любимова (2019). “Асинхронность в программировании”. Университетская Наука [рус.] (2 (8)). ISSN 2500-2724.
- Арыков С. Б. Асинхронное программирование численных задач // Параллельные вычислительные технологии (ПаВТ’2010): труды международной научной конференции (Уфа, 29 марта — 2 апреля 2010 г.). Челябинск: Издательский центр ЮУрГУ. — 2010. — С. 28–39.
- В. А. Мельников (2021). “Понятие асинхронного программирования” [рус.]. Общество с ограниченной ответственностью "Агентство международных исследований": 51—52.
- А. А. Шемякин, А. И. Чистозвонов, А. Р. Хакимжанов, В. С. Алкубаева (2019). “Преимущества асинхронного программирования перед синхронным” [рус.]. Общество с ограниченной ответственностью "КОНВЕРТ": 50—52.
- А. Д. Назаров (2020). “Применение механизмов асинхронного программирования при разработке приложений на мобильных устройствах на базе Ос Android” [рус.]: 223—226.