Поделиться через


Функции передачи сообщений

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

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

Подразделы

В этом разделе описываются следующие функции передачи сообщений:

  • send и asend

  • receive и try_receive

  • Примеры

send и asend

Concurrency::send функция отправляет сообщение на указанный конечный синхронно и concurrency::asend функция отправляет сообщение на указанный конечный асинхронно.Функции send и asend ждут, пока целевой объект укажет, примет он сообщение или отклонит.

Перед возвращением функция send ожидает принятия или отклонения сообщения целевым объектом.Функция send возвращает значение true, если сообщение было доставлено; в противном случае — значение false.Поскольку функция send работает синхронно, перед возвращением эта функция send ожидает получения сообщения целевым объектом.

Функция asend, наоборот, перед возвратом не ждет, пока целевой объект примет или отклонит сообщение.Вместо этого функция asend возвращает значение true, если целевой объект получает сообщение и в конечном счете примет его.В противном случае asend возвращает значение false, чтобы указать, что целевой объект отклонил сообщение или отложил решение о принятии сообщения.

Top

receive и try_receive

Concurrency::receive и concurrency::try_receive функции чтения данных из заданного источника.Функция receive ожидает, пока данные станут доступными, а функция try_receive возвращается немедленно.

Использовать функцию receive следует в случаях, когда для продолжения обязательно наличие данных.Использовать функцию try_receive следует в случаях, когда нельзя блокировать текущий контекст или для продолжения не обязательно наличие данных.

Top

Примеры

Примеры использования функций send, asend и receive см. в следующих разделах.

Top

См. также

Ссылки

Функция send

Функция asend

Функция receive

Функция try_receive

Основные понятия

Библиотека асинхронных агентов

Асинхронные блоки сообщений