
エントリーの編集

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
記事へのコメント1件
- 注目コメント
- 新着コメント
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
C++ volatile調査。局所的な最適化阻止 - Qiita
#今回の目的 例えば 他のデバイスが非同期でフラグを変えるのを待つ場合に コンパイラの最適化によって... #今回の目的 例えば 他のデバイスが非同期でフラグを変えるのを待つ場合に コンパイラの最適化によって、望んだ処理が消える可能性がある その場合に volatileを使うが、そのあたりを調査します #問題コード まず簡単な例。flagが初期値0で、0以外の値に変わると worker!! と出力し、終了する。 別スレッドで 5秒後にflag=1 に設定するので5秒後に終了するはずのプログラム (下記に理由を書きますが 本来はスレッドの同期にvolatileを使うのは間違いで、処理系によっては正しく動作できません。今回はそのあたりは無視しています) #include <iostream> #include <thread> int flag = 0; void worker() { while( flag == 0){ } std::cout << "worker!! \n"; } auto m
2015/09/08 リンク