私は先週のOSクラスを受け取り、同時実行性/スレッド化プロジェクトを持っていました。それは飛行機に上陸した/彼らが風が吹いている方向に離陸させた空港シムだった。私たちはJavaでやる必要がありました。今度は決勝戦が終わって退屈だから、C++ 11でやろうとしています。 Javaでは、メインの風(0〜360)の同期変数を使用し、使用していた3つのスレッドに渡しました。私の質問です:あなたはC + + 11でそれを行うことはできますか?それは基本的なリーダー/ライターであり、1つのスレッドは風を書き/更新し、もう1つは離陸/離陸します。C++でのシェア変数11
「threads.cpp」実装ファイルにグローバルな風変わりの変数を設定することで、動作するようになりました。しかし、私が望むだけ多くのスレッドに変数を渡す方法はありますか?それらのすべてがそれに追いついていますか?それとも、グローバル変数を使用して何も渡さない方が良いのですか(なぜ/なぜですか?)私はstd::ref()
を見ていましたが、うまくいきませんでした。
EDIT:私は既にmutexとlock_guardを使用しています。私はすべてのスレッドで変数を最新のものにして渡す方法を理解しようとしています。今は書き込みスレッドでのみ更新されます。
これはまさに私がやろうとしていたものです!しかし、それはグローバル変数を使用しているだけで痛みを感じるようです。このようにして+/-がありますか? – lciamp
さて、ほとんどの人は、グローバル変数はほとんどの場合、貧弱な実践であると考えています。少なくともテストは難しくなります。 –