memory-order

    3

    1答えて

    std::atomic<int> unique_ids; void foo() { int i = unique_ids.fetch_add(1, std::memory_order_relaxed); std::cout<<i; } int main(int argc, char* argv[]) { std::vector<std::thread> t

    0

    1答えて

    gccの内蔵型原子操作:AnはCASでopration追加: http://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html 私はアトミック操作を必要としています。 bool atomic_compare_add(int &ptr, int &expected, int val) 機能がatomiclyを実行します:if (ptr

    7

    2答えて

    私は一定の間隔(約1kHz)でタイムクリティカルな処理を実行するワーカースレッドをいくつか持っています。各サイクルで、労働者は雑用を行うために目を覚まし、次のサイクルが始まる前にが(平均)になるはずです。それらは同じオブジェクト上で動作しますが、これはメインスレッドによって時折変更されることがあります。 レースを防ぐが、オブジェクトの変更は次のサイクルの前に発生できるようにするために、私はまだ仕事

    1

    1答えて

    が測定されている更新し、いくつかのプロパティの平均を返すための2つの機能があると言うの平均計算するセマンティクスを取得: void Class::Update(int delta) { m_accumulatedValue += delta; ++ m_count; } double Class::GetAverage() { return m_accumu

    3

    1答えて

    次のコードを参照してください。 std::mutex mutex; std::condition_variable cv; std::atomic<bool> terminate; // Worker thread routine void work() { while(!terminate) { { std::unique_lock<std::mut

    2

    2答えて

    スレッド間でデータ構造体を共有したい(gcc、Linux、x86)。 のは、私は、スレッドAに次のコードを持っているとしましょう: shared_struct->a = 1; shared_struct->b = 1; shared_struct->enable = true; スレッドBはenableフラグの構造体最初のことをチェックし、定期的な作業です。 私は、コンパイラがスレッドAの