[過去ログ] マルチスレッドプログラミング相談室 その8 (1001レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
747(3): 2011/10/19(水)08:42 AAS
メモリバリアとか難しすぎて頭おかしくなりそう
atomic_int a = 0, b = 0;
//thread1
a.store_acquire(1);
int x = b.load_release();
//thread2
b.store_acquire(1);
int y = a.load_release();
これでx == 0 && y == 0が真になることがあるという話なんだけど頭の中でどう考えてもならない
いったいどういうカラクリでx,yが同時に0になるの?
748: 2011/10/19(水)09:23 AAS
>>747
正しくはstore_releaseとload_acquireね。
store & acquire とか、load & release とかいう組み合わせはない。
749: 2011/10/19(水)13:56 AAS
>>747
他のスレッドに値が反映されるまでラグがあると考えればいいよ
750(1): 2011/10/22(土)16:08 AAS
>>747
atomic_int a = 0, b = 0;
//thread1
a.store_release(1);
int x = b.load_acquire();
//thread2
b.store_release(1);
int y = a.load_acquire();
だとすると、
load_acquire()はstore_release()の前に移動できる。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.031s