IT用語集 › プログラミング › Acquire-release

Acquire-release

プログラミング Svenska → 更新: 2026-10-20

ロックフリーのコードが、ほぼ必ず本当に必要としているメモリ順序。1つの変数を介して2つのスレッドを同期できるだけの強さがあり、グローバルな順序付けのコストは払わずに済む。

releaseストアは、その前にスレッドが書いたものすべてが、後でその値をacquireロードしたスレッドから見えることを保証する。acquireロードのほうは、その後に書かれたものが前に移動しないことを保証する。この2つで、ちょうど2つのスレッドの間に、ちょうど1つの変数を介したhappens-before関係が成り立つ。これはロックが内部でやっていることそのもので、ロックの取得がacquire、解放がreleaseにあたる。対するseq_cstは、プログラム全体のすべての該当操作に単一の全順序を課す。x86ではストア1命令分のコストで済むが、ARMやPOWERではかなり高くつく。これより下にはrelaxedがあり、保証するのはアトミック性のみで、カウンターに向いている。

← 用語集に戻る