Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
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.
Rubriques
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 send les asend 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 send les asend fonctionsreceive, 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