stringtranslate.com

Асинхронность (компьютерное программирование)

Асинхронность в компьютерном программировании означает возникновение событий, независимых от основного потока программы , и способы борьбы с такими событиями. Это могут быть «внешние» события, такие как поступление сигналов или действия, инициированные программой, которые происходят одновременно с выполнением программы, без блокировки программы для ожидания результатов. [1] Асинхронный ввод/вывод является примером последнего случая асинхронности и позволяет программам выдавать команды запоминающим или сетевым устройствам, которые обслуживают эти запросы, в то время как процессор продолжает выполнять программу. Это обеспечивает определенную степень параллелизма . [1]

Распространенный способ борьбы с асинхронностью в программном интерфейсе — предоставить подпрограммы , которые возвращают будущее или обещание , представляющее текущую операцию, и операцию синхронизации, которая блокируется до тех пор, пока будущее или обещание не будет завершено. Некоторые языки программирования, такие как Cilk , имеют специальный синтаксис для выражения асинхронного вызова процедуры. [2]

Примеры асинхронности включают следующее:

Смотрите также

Рекомендации

  1. ^ Аб Дэвис, Алекс (2012). Асинхронность в C# 5.0. О'Рейли. стр. 1–2. ISBN 9781449337124.
  2. ^ МакКул, Майкл; Рейндерс, Джеймс; Робисон, Арч (2013). Структурированное параллельное программирование: шаблоны для эффективных вычислений . Эльзевир. п. 30.
  3. ^ Использование AMD в ICE.