Fonctions de passage de messages
La bibliothèque d’agents asynchrones fournit plusieurs fonctions qui vous permettent de transmettre des messages entre les composants.
Ces fonctions de passage de messages sont utilisées avec les différents types de blocs de messages. Pour plus d’informations sur les types de blocs de messages définis par le runtime d’accès concurrentiel, consultez Blocs de messages asynchrones.
Sections
Cette rubrique décrit les fonctions de transmission de messages suivantes :
envoyer et asend
La fonction concurrency ::send envoie un message à la cible spécifiée de manière synchrone et la fonction concurrency ::asend envoie un message à la cible spécifiée de manière asynchrone. Les fonctions et asend
les send
fonctions attendent jusqu’à ce que la cible indique qu’elle acceptera ou refusera le message.
La send
fonction attend que la cible accepte ou refuse le message avant son retour. La send
fonction retourne true
si le message a été remis et false
sinon. Étant donné que la send
fonction fonctionne de façon synchrone, la send
fonction attend que la cible reçoive le message avant qu’elle ne retourne.
À l’inverse, la asend
fonction n’attend pas que la cible accepte ou refuse le message avant de retourner. Au lieu de cela, la asend
fonction retourne true
si la cible accepte le message et l’accepte. Sinon, asend
retourne false
pour indiquer que la cible a refusé le message ou a reporté la décision de prendre le message.
[Haut]
recevoir et try_receive
Les fonctions concurrency ::receive et concurrency ::try_receive lisent les données d’une source donnée. La receive
fonction attend que les données soient disponibles, tandis que la try_receive
fonction retourne immédiatement.
Utilisez la receive
fonction lorsque vous devez disposer des données pour continuer. Utilisez la try_receive
fonction si vous ne devez pas bloquer le contexte actuel ou que vous n’avez pas à conserver les données.
[Haut]
Exemples
Pour obtenir des exemples qui utilisent les fonctions et receive
les send
fonctionsasend
, consultez les rubriques suivantes :
Guide pratique pour implémenter divers modèles de producteur-consommateur
Guide pratique pour fournir des fonctions de travail aux classes call et transformer
Guide pratique pour utiliser la classe transformer dans un pipeline de données
Guide pratique pour effectuer une sélection parmi les tâches terminées
Guide pratique pour envoyer un message à intervalles réguliers
[Haut]
Voir aussi
Bibliothèque d’agents asynchrones
Blocs de messages asynchrones
send, fonction
asend, fonction
receive, fonction
fonction try_receive