send&receiveでシグナル送受信

今回の学生クエストは、send&receiveとsend~&receive~の相違です。パッチ。コードなしにメッセージ(やマトリックス)を送るにはsend&receive、オーディオ・シグナルを送るにはsend~&receive~ってのがジョーシキですよね。ところが、間違ってシグナルをsend&receiveしたら、ちゃんと動いちゃったのでビックリしたらしいです(ビックリするだけエライ!)。

さて、結論から言うと、シグナルをsendで送って、receiveで受け取ることができます。問題があるのは、シグナルをフィードバックするようなルーティングで、この場合はsend&receiveではシグナルを送ることができません。シグナルが止まっちゃいます(下図の右側)。send~&receive~ならフィードバックが生じてもシグナルを送ることができますが(下図の左側)、この場合はシグナル・ベクター・サイズ分だけシグナルが遅れます。そうでなければ、無限ループに陥っちゃいますからね。

send-vs-send.gif

ちなみに、send&receiveとsend~&receive~とでは、同じ名前を使うことはできませんね。それから、メッセージをsend~&receive~で送ることもできませんよ。

ともあれ、ジョーシキに沿うのが無難なのですが、私はシグナルにsend&receiveを使うことが多いかも。だって、sとrが使えますからね。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA