1
2つのスレッドAとBはvolatile int i
を共有します。gcc:__sync_lock_test_and_set VS。 =揮発性変数を持つ演算子
スレッドAの増分このようi
:i = 15;
:__sync_fetch_and_add(&i, 1);
スレッドBは、このような任意の値Vにi
を設定します。
私の質問:このような使用法の場合、の演算子で直接的な影響ではなく、__sync_lock_test_and_set(&i, 15);
を使用する必要がありますか?
「はい」の場合、__sync_lock_release
はtest_and_setの直後に必須ですか?
ENV:GCC 4.1.2、CentOSの5.11 32ビット、ノーC++ 11