掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ダイアログが止まってしまいます (ID:73668)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
正しく詳しく説明するには掲示板のスペースではとても足らないが・・・ 誤解を招く可能性を承知であえて書くと out-of-order 実行 ・スレッド1で共用変数に書き込む ・スレッド2で共用変数を読む ようなケースで、 ・同一スレッド内ではおよそプログラマの意図順に変数への書き込みがされているように見えるが ・異スレッドでは、書き込み順序が逆に観測される ようなことが、現代高性能 CPU では普通に行われている。 メモリバリア ソースコード上で(機械語上で)の変数への書き込みを、 キャッシュメモリや ALU 内キューなどに留めず、実際のメモリに反映させる命令 ということで・・・詳細説明をはしょってしまうが 異スレッドで共有する変数の値を変えてスレッド間同期を取るような場合 ・値を0から1にするときには、単なる代入ではなくて InterlockedIncrement を使え ・値を1から0にするときには同様 InterlockedDecrement を使え ってことだ (x86 の Interlocked**** はメモリバリア機能を内蔵してる)
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.