stdatomic

    0

    2答えて

    someAtomicは、atomic_uint16_tのような整数型の基本型を持つstd :: atomicであるとします。今コンパイルしない、私は特定のコードでは、しかし、WHICH整数型を想定したくないので、私は次のことを達成するために何かをしたい: if (newVal > numeric_limits<decltype(someAtomic)>::max()) throw "newVal

    0

    2答えて

    共有優先度キュークラスを作成しました。 データの配信を停止するように通知するには、doneという記号を設定し、アプリケーションがキューからデータを読み書きすることを許可しないメソッドCancel()を使用します。 std::mutexとstd::condition_variableと組み合わせてstd::atomic<bool>を使用することについてはわかりません。私の解決策が安全か、レース状態が

    0

    1答えて

    私は1つの原子変数(bool)とその変数をポーリングする別のスレッドを変更するスレッドを持っています。私のアプリケーションでは、thread Aで関数呼び出しがほとんどなく、特定の1つの原子変数でポーリングを開始します。 Thread Bは、一部の外部アプリケーション(application on dbus)のステータスを読み続けるため、それに応じて少数のアトミック変数を変更します。 Thread

    0

    2答えて

    私は、ライターと複数のリーダーが1つの並列コードを作成しています。ライターは最初から最後まで配列を塗りつぶし、リーダーは配列の要素に順番にアクセスします。擬似コードは、以下のようなものです: std::vector<Stuff> vec(knownSize); int producerIndex = 0; std::atomic<int> consumerIndex = 0; プロデューサ

    1

    2答えて

    デバイスレジスタの内容を複数のスレッドが読み取る変数にコピーしたいとします。これを行う一般的な方法がありますか?ここでこれを行う2つの方法の例です: #include <atomic> volatile int * const Device_reg_ptr = reinterpret_cast<int *>(0x666); // This variable is read by multi

    7

    1答えて

    boost::shared_mutexまたはstd::shared_mutex(C++ 17)は、シングルライター、複数リーダーアクセスに使用できます。教育上の練習として、私はスピンロックを使用し、他の制限がある(例えば公平性ポリシー)単純な実装を組み立てましたが、実際のアプリケーションでは使用されないことは明らかです。 スレッドがロックを保持していない場合、ミューテックスは参照カウントをゼロに保

    4

    2答えて

    私はマルチスレッドプログラミングには新しく、C++ 11ではstd::atomicが見つかりました。 したがって、アトミック操作にかかる時間を把握しようとしました。 私はこのコードを試してみました:mainと using namespace std; using namespace std::chrono; constexpr int NUM_THREADS = 8; constexpr

    1

    1答えて

    C++標準によると、std::atomicは、任意のトリビュアコピー可能タイプと組み合わせることができます。ただし、GCCは次のエラーメッセージを生成します。 #include <atomic> struct TriviallyCopyableType { int a, b, c, d; }; int main() { std::atomic<TriviallyCopya

    4

    1答えて

    how to use std::atomic<> は、明らかに私たちは、スレッドの安全性を保つためにstd::mutexを使用することができます。私はいつどちらを使うべきかを知りたい。経験則として classs A { std::atomic<int> x; public: A() { x=0; } void Add()

    1

    2答えて

    VC++を使用して(Visual Studio 2015、アップデート3を使用して)プログラムをコンパイルするとコンパイルに失敗します。 基本的には、アトミックブール値への参照をアトミックブール値で取得する関数をバインドしたいと思います。 void stub(std::atomic_bool& b) { b = true; } int main() { std::atom