InterlockedXXX関数

公開:2011-09-07 21:02
更新:2020-02-15 04:36
カテゴリ:その他api,c++

メモリバリアを理解するために必要な3つのことを読んでいてふと思い出した。確かInterlockedIncrementというのがWindows API関数であったな。これはlong変数を引数にとり、マルチスレッド環境でも確実に+1にする関数である。InterlockedDecrementは-1する関数である。

ここまでは知っていたのだがMSDNライブラリを見るとInterlockedXXX関数というのはいっぱいある。

どれも行う処理が不可分(atomic)であることを保証している。

InterlockedCompareExchangeとかはCAS命令を使っているのだろうか。でもそんな古いCPUからCAS命令というのはあったのだろうかね??