Асинхронное программирование — концепция программирования, которая заключается в том, что результат выполнения функции доступен не сразу, а через некоторое время в виде некоторого асинхронного (нарушающего обычный порядок выполнения) вызова.
В отличие от синхронного программирования, где компьютер выполняет инструкции последовательно и ожидает завершения системных операций (обращение к устройствам ввода-вывода, жесткому диску, сетевой запрос) блокируя следующие операции в потоке выполнения, в асинхронном программировании длительные операции запускаются без ожидания их завершения и не блокируя дальнейшее выполнение программы.
Использование кода асинхронного программирования позволяет освободить поток выполнения, из которого он был запущен, что приводит к экономии ресурсов, а также предоставляет возможность параллельных вычислений. Асинхронное программирование используется для оптимизации высоконагруженных приложений с частым ожиданием системы. Пользователям программ с графическим интерфейсом пользователя асинхронное программирование обеспечивает быстрый отклик. Серверным приложениям асинхронное программирование предоставляет больше возможностей для масштабируемости, по сравнению с синхронным.
Модели асинхронного программирования существуют во многих современных языках программирования, таких как C#Дэвис А. Асинхронное программирование в C# 5.0 //М.: ДМК Пресс. — 2013., JavaScript, PythonТолстикова А. В., Мирошниченко И. С., Коцюр А. Б. Эффективность использования программирования асинхронных приложений на языке Python //Проблемі інформатизації та управління. — 2016. — Т. 1. — №. 53. — С. 72-77. и других.
Примечания
Библиография Арыков С. Б., Малышкин В. Э. Алгоритмы конструирования асинхронных программ заданной степени непроцедурности методом группировки // Вестн. Новосиб. гос. ун-та. Серия: Информационные технологии. — 2009. — Т. 7, вып. 1. — С. 3-15. Богатырев Р. Об автоматном и асинхронном программировании //Открытые системы. СУБД. — 2001. — №. 3. — С. 68-69.
Арыков С. Б. Асинхронное программирование численных задач //Параллельные вычислительные технологии (ПаВТ’2010): труды международной научной конференции (Уфа, 29 марта-2 апреля 2010 г.). Челябинск: Издательский центр ЮУрГУ. — 2010. — С. 28-39.
Категория:Программирование