Асинхронное программирование

Асинхронное программирование (англ. asynchronous programming) — концепция программирования, согласно которой результат выполнения функции становится доступен не сразу, а по истечении некоторого времени посредством асинхронного вызова, нарушающего привычный последовательный порядок работы программы.

В отличие от синхронного программирования, где компьютерные инструкции исполняются поочерёдно и выполнение системных операций (например, обращение к устройствам ввода-вывода, жёсткому диску, сетевые запросы) блокирует следующие действия в потоке исполнения, при асинхронном программировании длительные операции запускаются без ожидания завершения и не прерывают дальнейшее выполнение программы[1][2].

Применение асинхронного программирования позволяет освободить поток исполнения, из которого запущена длительная операция, что способствует экономии ресурсов[2] и даёт возможность параллельных вычислений. Асинхронность используется в оптимизации высоконагруженных приложений, связанных с частым ожиданием реакции операционной системы[1]. Для программ с графическим интерфейсом пользователя асинхронные вызовы обеспечивают быстрый отклик пользовательского интерфейса[3], а серверным приложениям — даёт лучшие возможности масштабируемости по сравнению с синхронными реализациями[3].

Модели асинхронного программирования реализованы во многих современных языках программирования, таких как C#[4][5][3][6][7], JavaScript[8], Python[9][10][11] и других.

Примечания

  1. 1 2 Татьяна Валерьевна Любимова (2019). “Асинхронность В Программировании”. Университетская Наука [рус.] (2 (8)). ISSN 2500-2724.
  2. 1 2 Алекс Дэвис. Асинхронное программирование в C# 5.0. — Litres, 12 января 2022. — P. 122. — ISBN 978-5-457-42681-8.
  3. 1 2 3 Клири Стивен. программирование&hl=ru&pg=PA1 Конкурентность в C#. Асинхронное, параллельное и многопоточное программирование. 2-е межд. изд.. — Издательский дом "Питер", 4 марта 2020. — P. 304. — ISBN 978-5-4461-1572-3.
  4. Сергей Владимирович Тепляков (2010). “Асинхронное программирование в C# 5”. Rsdn Magazine [рус.] (4). ISSN 0234-6621.
  5. Дэвис А. Асинхронное программирование в C# 5.0 // М.: ДМК Пресс. — 2013.
  6. Сорокин А. А., Белянина Д. Н. АСИНХРОННОЕ ПРОГРАММИРОВАНИЕ В ASP .NET MVC 4 // Лебедева Надежда Анатольевна—д-р философии в области культуры. — С. 20. Дата обращения: 16 января 2022. Архивировано 7 марта 2022 года.
  7. Д. Н. Курова (2015). “Асинхронная обработка запросов в ASP.NET”. Вестник Димитровградского Инженерно-Технологического Института [рус.] (3 (8)).
  8. С. А. Сидоров (2019). “АСИНХРОННОЕ ПРОГРАММИРОВАНИЕ В JavaScript” [рус.]: 272—275.
  9. Савостин Петр Алексеевич, Ефремова Наталья Эрнестовна (2018). “Практическое применение асинхронного программирования на языке Python при помощи пакета asyncio”. Программные системы и вычислительные методы (2): 11—16. Архивировано из оригинала 18 января 2022.
  10. Елена Васильевна Фешина, Дмитрий Александрович Омельченко, Руслан Геннадьевич Гонатаев (2021). “Многопоточность и асинхронность в языке программирования Python”. Инновации. Наука. Образование [рус.] (28).
  11. Толстикова А. В., Мирошниченко И. С., Коцюр А. Б. Эффективность использования программирования асинхронных приложений на языке Python // Проблеми інформатизації та управління. — 2016. — Т. 1. — № 53. — С. 72-77.

Литература

Категории