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