タグ付けされた質問 「data-race」


3
マルチスレッド化プログラムは最適化モードのままですが、-O0で正常に実行されます
簡単なマルチスレッドプログラムを次のように記述しました。 static bool finished = false; int func() { size_t i = 0; while (!finished) ++i; return i; } int main() { auto result=std::async(std::launch::async, func); std::this_thread::sleep_for(std::chrono::seconds(1)); finished=true; std::cout<<"result ="<<result.get(); std::cout<<"\nmain thread id="<<std::this_thread::get_id()<<std::endl; } それはでデバッグモードで正常に動作するVisual Studioのか-O0にGC Cとした後、結果をプリントアウト1秒。しかし、スタックモードになり、リリースモードまたはで何も印刷しません-O1 -O2 -O3。

2
IBMサンプルコード、非再入可能関数がシステムで機能しない
プログラミングの再入学を勉強していました。IBMのこのサイト(本当に良いサイト)。以下にコピーしたコードを見つけました。これは、ウェブサイトに登場する最初のコードです。 コードは、「危険なコンテキスト」で絶えず変化する2つの値を出力することにより、テキストプログラムの非線形開発(非同期)で変数への共有アクセスに関する問題を示します。 #include <signal.h> #include <stdio.h> struct two_int { int a, b; } data; void signal_handler(int signum){ printf ("%d, %d\n", data.a, data.b); alarm (1); } int main (void){ static struct two_int zeros = { 0, 0 }, ones = { 1, 1 }; signal (SIGALRM, signal_handler); data = zeros; alarm …
11 c  gcc  signals  x86-64  data-race 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.