リリース一貫性
右の画像のようなシナリオを考えてみる。このケースはリリース一貫性モデルに基づいたキャッシュコヒーレントシステムで、書き込み伝搬が行われる場合を示している。datumIsReadyの伝搬の前に、変数datumは完全に伝搬されている。しかしdatumの値はP1の同期アクセスを獲得するまで必要ないため、datumIsReadyとともに伝播させても、プログラムの結果に悪影響を与えることはない。
2つ目の図は、遅延解放整合性が適用された場合の例です。このシナリオでは、リリース同期の前に書き込まれたすべての値が遅延され、リリース・アクセス自体の伝搬とともに伝搬される。したがって、datumとdatumIsReadyはリリースポイントで一緒に伝搬される。
遅延リリース一貫性を実際に適用した例として「TreadMarks」がある。
ロックリリースはリリース同期の一種と考えられる。右図のようなコードでループ処理が行われているとする。2つのスレッドがクリティカルセクションに入り、aの最新の値を読み込んだ後、クリティカルセクションを抜ける予定である。このコードでは、まずスレッド0がロックを取得してクリティカルセクションに入る。正しく実行するためには、P0が書き込んだaの最新値をP1が読み込まなければならない。その際、一度に1つのスレッドしかクリティカルセクションに入ることができない。したがって、P0がロックを解放した後にP1のロック獲得が成功するように、同期自体が保証されている。また、P0がaの新しい値をP1に伝達しなければならないため、S2→S3の順序が保証されなければならない。同じ理由で、S5はS4の後に発生しなければならない。
ロック解除問題の後にロック解除完了前にメモリ・アクセスを行っても、ロック獲得後にロック問題の前にメモリ・アクセスを行っても、正しさに影響はない。ただし,ロック取得が完了する前にクリティカルセクションのコードを発行すると、相互排除が保証されない可能性があるため発行できない。