同期メッセージパッシングシステムでは送信者と受信者がお互いにメッセージの転送を待つ。つまり、送信者は受信者がメッセージを受信するまでプログラムを再開できない。
同期通信は二つの利点がある。利点の一つ目はメッセージ転送において送信者と受信者で同期をとるため、プログラムを単純化できることである。利点の二つ目はバッファを必要としないことである。メッセージはいつでも受信側に保存される。なぜならば、送信者は受信者の準備が完了するまで送信を待つためである。
非同期メッセージパッシングシステムは受信者から送信者に準備ができる時間を待たずにメッセージを送る。非同期通信の利点はお互いに待つことがないので、お互いの計算処理をオーバーラップして行える。
同期通信は送信者がいつも受信者が続ける前にメッセージを応答したことを確実にする非同期通信をベースに築かれている。
非同期通信はバッファを必要とするが、そのバッファが満杯になると問題の原因になる。送信者をブロックするか今後のメッセージを切り捨てるか判断をしなければならない。送信者をブロックすれば、予期しないデッドロックを引き起こすかもしれない。メッセージを捨てた場合通信の信頼性は無くなる。
メッセージパッシングと関数呼び出しの比較.
他のプログラミングモデルへの影響.
オブジェクト指向の幾つかの専門用語の中にメッセージはオブジェクトにコントロールを渡すという意味で使われる。もしオブジェクトがそのメッセージに応答したならばそれはそのメッセージに対するメソッドを持っている。詳しくはオブジェクト指向プログラミングを参照すること。
純粋なオブジェクト指向ではメッセージパッシングは排他的にダイナミックディスパッチに投げられる様に機能する。
同じメッセージを二回同じオブジェクトに送信した場合、普通そのメソッドを二回請求する結果となる。もし、名前と引数が同じならば二つのメッセージは同じメッセージタイプと考えられている。
オブジェクトは自分のメソッド本体から他のオブジェクトにメッセージを送信できる。メッセージパッシングシステムの中で、究極遅延束縛 () が可能である。