IT用語集 › プログラミング › ハザードポインタ

ハザードポインタ

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

ロックフリーなデータ構造でメモリを解放してよい時点を知るための方式で、各スレッドが使用中のポインタを公開する。

ロックフリー構造では、ノードを切り離した瞬間に解放することはできない。別のスレッドがちょうどそのノードを読んでいるかもしれないからだ。2004年にMaged Michaelが示した解決策では、各スレッドが参照中のポインタを書き込むスロットを持ち、他のスレッドはそれを読める。ノードを解放したいスレッドは、まずそれを自分専用のリストに入れ、定期的に全スレッドのスロットを走査する。誰も公開していないノードは解放し、残りは待たせる。エポックベース回収と比べた利点は、スレッドが停止してもメモリ使用量に上限があること。代償は読み取りごとのフェンスだ。C++26で標準化された。

← 用語集に戻る