메시지 전달 함수

비동기 에이전트 라이브러리에서는 구성 요소 간에 메시지를 전달할 수 있는 몇 가지 함수를 제공합니다.

이러한 메시지 전달 함수는 다양한 메시지 블록 형식과 함께 사용됩니다.동시성 런타임에 정의된 메시지 블록 형식에 대한 자세한 내용은 비동기 메시지 블록을 참조하십시오.

단원

이 항목에서는 다음과 같은 메시지 전달 함수에 대해 설명합니다.

  • send 및 asend

  • receive 및 try_receive

  • 예제

send 및 asend

Concurrency::send 함수 보내는 메시지는 지정 된 대상에 동기적으로, concurrency::asend 함수 보내는 메시지는 지정 된 대상에 비동기적으로.sendasend 함수 둘 다 대상에서 메시지를 최종적으로 수락할지 아니면 거부할지를 나타낼 때까지 기다립니다.

send 함수는 대상에서 메시지를 수락하거나 거부할 때까지 기다린 후 반환합니다.send 함수는 메시지가 배달되었으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.send 함수는 동기적으로 동작합니다. 따라서 send 함수는 대상에서 메시지를 받을 때까지 기다린 후 반환합니다.

반대로 asend 함수는 대상에서 메시지를 수락하거나 거부할 때까지 기다리지 않고 반환합니다.대신 asend 함수는 대상에서 메시지를 수락하고 최종적으로 배달될 예정이면 true를 반환합니다.그렇지 않으면 asend에서는 false를 반환하여 대상에서 메시지를 거부했거나, 메시지를 받을지 여부에 대한 결정을 연기했음을 나타냅니다.

Top

receive 및 try_receive

Concurrency::receiveconcurrency::try_receive 함수는 지정 된 원본에서 데이터를 읽기.receive 함수는 데이터를 사용할 수 있을 때까지 기다리지만 try_receive 함수는 즉시 반환합니다.

데이터가 있어야 계속할 수 있는 경우 receive 함수를 사용합니다.현재 컨텍스트를 차단해야 하거나, 데이터가 없어도 계속할 수 있는 경우에는 try_receive 함수를 사용합니다.

Top

예제

send, asendreceive 함수를 사용하는 예제를 보려면 다음 항목을 참조하십시오.

Top

참고 항목

참조

send 함수

asend 함수

receive 함수

try_receive 함수

개념

비동기 에이전트 라이브러리

비동기 메시지 블록