lock-free

    5

    1答えて

    .Netフレームワークは、のメソッドがintおよびlongの場合のみです。しかしdoubleタイプの場合はInterlock.Add()が必要です。どうやってやるの?

    5

    1答えて

    私はマイケルを勉強しています&スコットのロックフリーキューアルゴリズムとC + +で実装しようとしています。 しかし、私は自分のコードでレースを制作し、アルゴリズムにレースがあると思う。 私はここに紙読み: Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms を、元のデキューの擬似コード

    10

    3答えて

    私はstd::stringをboost::lockfree::queueに入れようとしているので、スレッドは新しいデータで互いに更新できます。 私はboost::lockfree::queue<std::string> updated_data;を使用しようとすると、g++は言う: In instantiation of 'class boost::lockfree::queue >': erro

    1

    1答えて

    fetch_and_store操作のアルゴリズムがあります。私はこの行を除いてアルゴリズムを全世界的に理解しています:pred : ^qnode := I->prev := fetch_and_store (L, I)。これはCLHアルゴリズム(並行処理プログラミング用)です。誰かがこの部分を理解するのを助けることができますか? アルゴリズム:スレッドが処理のためにそれを取り、他のノードと置き換え

    1

    3答えて

    オブジェクトにロックフリーのキャッシュを実装する方法はありますか?複数のスレッドからアクセスするのは安全でしょうか?私がキャッシュしようとしている計算は超安価ではありませんが、超高価ではないので、ロックを必要とすると私の場合にキャッシュの目的を破るでしょう。 IIUC、std::atomicはロックフリーであることは保証されません。 編集:計算は - 高価ではないので、実際には1回か2回実行するか

    0

    1答えて

    これはA. Williams C++ Concurrency in Actionの本です。ハザードポインタのあるロックフリーのスタックです。私はそれを理解すると仮定し、わずか2行を除いて、ここで彼らは(ここではsource)は次のとおりです。 // code before if (old_head) { res.swap(old_head->data); // code after 質問

    1

    1答えて

    ロックフリーキューを使用してマルチスレッドセーフのロガーを作成したいと思います。ロギングスレッドはメッセージをキューにプッシュし、ロガーはメッセージをポップして出力に送信します。私はその問題を解決する方法を考えています。 可能であれば、mutex/locksの使用を避けたいと思います。 ファイル/コンソールに書き込むためにC++ストリームを使用すると仮定しましょう。ターゲットシステムはLinuxと

    3

    1答えて

    Javaで並行ビットセットを作成しようとしていますが、これはサイズの拡張を可能にします(固定長ではなく、非常に簡単です)。クラスの中核部分です(他のメソッドは現在重要ではありません) public class ConcurrentBitSet { static final int CELL = 32; static final int MASK = CELL - 1; final Atom

    7

    1答えて

    私たちはかなり古いバージョンのboostを使用しています。アップグレードするまでは、にC++でのアトミックなCAS操作が必要です。 (私たちはどちらかまだC++ 0xのを使用していない) 私は、次のCAS機能作成: void myFunc(uint32_t &masterDeserialize) { std::ostringstream debugStream; unsig