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


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

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

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

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