compare-and-swap

    0

    1答えて

    私は参照テーブルに値を書き込むupdateEntryという次の関数を持っています。私は、この関数のマルチスレッド版を作成したいと思います。 私は原子操作__sync_bool_compare_and_swapを調べていましたが、ここで正しく適用する方法がわかりません。 2つの独立したメモリ位置entryLookup[id]とentryが変更されるため、ロックなしでこの機能をアトミックに実装すること

    1

    2答えて

    私は皆知っているように、私は+ + Javaで原子ではないので、私はそれを証明するプログラムを作成しようとします。 私の考えは、いくつかの新しいスレッドを追加し、各スレッド内でカウントを増やすことです(Mainクラスの静的フィールドです)。 threadNum * iteration > count, は、その後、我々はアトミックではありません++私を証明することができますが、実際に私はいつも

    -1

    1答えて

    私は素早い疑問を持っています:両方の断片の複雑さは同じです。しかし、私はどちらが比較的優れているのか、またその理由を知りたいのですか? for (int i = 0; i < n - 1; i++) { for (int j = i + 1; j <= n - 1; j++) { if (a[j] < a[i])

    1

    1答えて

    分子動力学アルゴリズムで周期的な境界条件を実装するために、serialコードのCUDAバージョンを記述しようとしています。考え方は、ボックスの外にある位置の粒子のほんの一部が、2つのうちの1つを使用して戻される必要があるということです。ways、最初の方法を使用する回数に制限があります。 本質的に、それは以下のMWEにまでわかります。私は配列x[N]を持っています。ここではNが大きく、次のコードは

    3

    2答えて

    今日、インタビューで次の質問がありました。「CAS操作をサポートしていないプロセッサを搭載したマシンで呼び出す場合のAtomicLongのcompareAndSetメソッド" 可能であれば、この質問に私を助けて、包括的な説明へのリンクをいくつか提供してください。

    0

    1答えて

    shared_ptrのatomic_compare_exchange_strongでrawポインタと比較できますか?そのよう :http://en.cppreference.com/w/cpp/memory/shared_ptr/operator_cmpのみ生のポインタを比較したと言うので、私は、このことについて考え struct Chunk{ // atomics std

    6

    1答えて

    this質問の答えによると、x86上のLOCK CMPXCHGは実際に完全な障壁を引き起こすようです。おそらく、これはフードの下に同様にUnsafe.compareAndSwapInt()が生成するものです。なぜ私はそれが当てはまるのか苦労しています.MESIプロトコルでは、キャッシュラインを更新した後、CASはCASを実行したコアのすべてのストア/ロードバッファを排水するのではなく、単に他のコア

    0

    1答えて

    フェッチ・アンド・アドレスのコンセンサス番号は2 どのような意味で、どのようにマルチスレッド・プログラミングに影響するのか苦労していますか?私はそれがcompareandswapと比較してどのように影響するかについていくつかの実用的な例が大好きです...ありがとうございました。

    0

    1答えて

    私は状態変数を持っています。 INT状態=(2、1、0) と無限ループ: ret = BoolCompareAndSwap(state, 1, 2) if (ret) { // Change something ... state = 0; } この状態設定がアトミックですか? 、いくつかの他のスレッドが来て、変数を比較した場合 新しい値を設定し メモリからの変更値 を

    1

    2答えて

    // created a copy of CNode and added the new value CNode *copyCNode = new CNode; //memcpy(c, iNode->mainNode->cNode, sizeof(*(iNode->mainNode->cNode))); memcpy(copyCNode, iNode->mainNod