Partager via


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 :

[Haut]

Voir aussi

Bibliothèque d’agents asynchrones
Blocs de messages asynchrones
send, fonction
asend, fonction
receive, fonction
fonction try_receive