Функции передачи сообщений
Библиотека асинхронных агентов предоставляет несколько функций, которые позволяют передавать сообщения между компонентами.
Эти функции передачи сообщений используются с различными типами блоков сообщений. Дополнительные сведения о типах блоков сообщений, определенных средой выполнения параллелизма, см. в разделе "Асинхронные блоки сообщений".
Разделы
В этом разделе описываются следующие функции передачи сообщений:
отправка и asend
Функция параллелизма::send отправляет сообщение указанному целевому объекту синхронно, а функция параллелизма::asend отправляет сообщение указанному целевому объекту асинхронно. send
asend
И функции ожидают, пока целевой объект не будет в конечном итоге принимать или отклонять сообщение.
Функция send
ожидает, пока целевой объект не примет или отклонит сообщение, прежде чем он возвращается. Функция send
возвращает true
, если сообщение доставлено и false
в противном случае. send
Так как функция работает синхронно, send
функция ожидает, пока целевой объект получит сообщение, прежде чем он возвращается.
И наоборот, asend
функция не ожидает, пока целевой объект примет или отклонить сообщение, прежде чем он возвращается. Вместо этого функция возвращаетсяtrue
, если целевой asend
объект принимает сообщение и в конечном итоге принимает его. В противном случае возвращаетсяfalse
, asend
чтобы указать, что целевой объект либо отказался от сообщения, либо отложил решение о том, следует ли принимать сообщение.
[В начало]
получение и try_receive
Параллелизм ::получение и параллелизм:::try_receive функции считывают данные из заданного источника. Функция receive
ожидает доступности данных, а try_receive
функция возвращается немедленно.
Используйте функцию receive
, когда данные должны продолжаться. Используйте функцию try_receive
, если вы не должны блокировать текущий контекст или не должны продолжать данные.
[В начало]
Примеры
Примеры, использующие send
функции и asend
receive
функции, см. в следующих разделах:
Практическое руководство. Реализация различных шаблонов "источник-приемник"
Практическое руководство. Предоставление рабочих функций классам call и transformer
Практическое руководство. Использование преобразователя в конвейере данных
Практическое руководство. Отправка сообщений через определенные интервалы
Практическое руководство. Использование фильтра блоков сообщений
[В начало]
См. также
Библиотека асинхронных агентов
Асинхронные блоки сообщений
Функция send
Функция asend
Функция получения
Функция try_receive