Асинхронный вызов процедуры
Эта статья в значительной степени или полностью опирается на один источник . ( март 2017 г. ) |
Асинхронный вызов процедуры (APC) — это единица работы компьютера.
Определение
[ редактировать ]Вызовы процедур могут быть синхронными или асинхронными. Синхронные вызовы процедур выполняются в одном потоке последовательно, при этом каждый вызов ожидает завершения предыдущего вызова. в какой-то ветке. Вместо этого APC выполняются без ожидания завершения предыдущих вызовов.
Например, если некоторые данные не готовы (например, программа ждет ответа пользователя), то остановка другой активности в потоке обходится дорого, поток потребляет память и, возможно, другие ресурсы.
Структура
[ редактировать ]APC обычно формируется как объект с небольшим объемом памяти, и этот объект передается службе, которая обрабатывает интервал ожидания, активируя его при возникновении соответствующего события (например, пользовательского ввода).
Жизненный цикл APC состоит из 2 стадий: пассивной стадии, когда она пассивно ожидает входных данных, и активного состояния, когда эти данные вычисляются так же, как при обычном вызове процедуры.
Многоразовая асинхронная процедура называется Actor . В модели Actor используются два порта: один для приема входных данных, а другой (скрытый) для обработки входных данных. В программировании потоков данных используется множество портов, которые передаются в службу выполнения, когда присутствуют все входные данные.
Реализации
[ редактировать ]В Windows APC — это функция, которая выполняется асинхронно в контексте определенного потока. [1] APC могут генерироваться системой (APC в режиме ядра) или приложением (APC в пользовательском режиме). [1]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Перейти обратно: а б «Асинхронные вызовы процедур (Windows)» . Проверено 1 марта 2017 г.