Funções de transmissão de mensagens
A biblioteca de agentes assíncrona fornece várias funções que permitem passar mensagens entre componentes.
Essas funções de transmissão de mensagens são usadas com os vários tipos de bloco de mensagens. Para obter mais informações sobre os tipos de bloco de mensagens que são definidos pelo Runtime de simultaneidade, consulte Blocos de mensagens assíncronas.
Seções
Este tópico descreve as seguintes funções de transmissão de mensagens:
enviar e asend
receber e try-receive
Exemplos
enviar e asend
O Concurrency::send função envia uma mensagem para o destino especificado sincronia e o Concurrency::asend função envia uma mensagem para o destino especificado assincronamente. Tanto o send e asend funções aguardar até que o destino indica que irá, eventualmente, aceitar ou recusar a mensagem.
O send função aguarda até que o destino aceita ou recusa a mensagem antes que ele retorna. O send retorna a função true se a mensagem foi entregue e false contrário. Porque o send função funciona de forma síncrona, o send função aguarda que o destino para receber a mensagem antes que ele retorna.
Por outro lado, o asend função não espera o destino para aceitar ou recusar a mensagem antes que ele retorna. Em vez disso, o asend retorna a função true se o destino aceita a mensagem e entrará em proprietário. Caso contrário, asend retorna false para indicar que o destino recusou a mensagem ou adiada a decisão sobre se deve levar a mensagem.
go to top
receber e try-receive
O Concurrency::receive e Concurrency::try_receive funções ler dados de uma origem específica. O receive função aguarda a dados se torne disponível, enquanto o try_receive função retorna imediatamente.
Use o receive funcionar quando você deve ter os dados para continuar. Use o try_receive funcionar se você não deve bloquear o contexto atual ou você não tem que ter os dados para continuar.
go to top
Exemplos
Para obter exemplos que usam o send e asend, e receive funções, consulte os seguintes tópicos:
go to top
Consulte também
Referência
Conceitos
Biblioteca de agentes assíncronos
Blocos de mensagens assíncronas
Histórico de alterações
Date |
History |
Motivo |
---|---|---|
Março de 2011 |
Esclarecida a diferença entre o send e asend funções. |
Comentários do cliente. |
Agosto de 2010 |
Links adicionados aos exemplos. |
Aprimoramento de informações. |