タグ

2017年10月17日のブックマーク (3件)

  • atomic変数間のatomicなコピー - yohhoyの日記

    プログラミング言語C/C++が提供するatomic変数*1とそのコピー操作に関するメモ。 2個のatomic変数間における “atomicなコピー操作” は提供されない。通常は “atomic変数からの読込(load)”+“atomic変数への格納(store)” で代用すればよい。ただし、下記コードのような2つのコピー操作が並行実行された場合、load/store操作のインターリーブが起こりうることに留意。*2 // C++11 #include <atomic> using namespace std; // C11 #include <stdatomic.h> atomic_int x = ATOMIC_VAR_INIT(0); // x = 0 atomic_int y = ATOMIC_VAR_INIT(1); // y = 1 void thread1() { atomic_s

    atomic変数間のatomicなコピー - yohhoyの日記
    castaneai
    castaneai 2017/10/17
    “真に“atomicなコピー操作”が必要ならば、mutex等を用いた排他制御を行うこと。ただし、この場合atomic変数とする必然性はない。”
  • C++11 std::atomicを使いこなすための情報リスト - Pebble Coding

    C++11 std::atomicは難解です。 しかし、パフォーマンスが出ない時に頼りになるツールでもあります。 情報はなかなか少ないので、適宜まとめておきます。 CPUの動作に関する説明 CPU とキャッシュのはなし - graphics.hatenablog.com プログラミング :: 高速なプログラムを書く為に :: メモリ C++11のstd::atomicに関する説明 次期C++に導入されるメモリバリアについて解説してみる - yamasaのネタ帳 C++ Memory Model https://www.think-cell.com/en/career/talks/pdf/think-cell_talk_memorymodel.pdf かなり丁寧な図による説明です。 これでmemory_order_seq_cstとmemory_order_relaxedについての理解が進みま

    C++11 std::atomicを使いこなすための情報リスト - Pebble Coding
    castaneai
    castaneai 2017/10/17
    std::atomic と C++ のメモリバリアまわりの日本語解説があるサイトのまとめ
  • C#でマルチスレッドのベストプラクティスって何かある?(What are the best practices with multithreading in C#?) - Qiita

    C#でマルチスレッドのベストプラクティスって何かある?(What are the best practices with multithreading in C#?)C#非同期処理StackOverflowマルチスレッド翻訳 StackExchange/Code Reviewでの質問"Exporting doc types using queues and multithreading"へのEric Lippert氏による回答より訳出。回答内容はオリジナル投稿"What are the best practices with multithreading in C#?"に呼応するため、編集前のタイトルを採用。原文および訳文のライセンスは引用元サイト規約の通り CC-BY-SA 3.0 に従う。 (補足:回答内容のトーンに合わせて口語調かつ意訳気味に訳出しました。誤訳指摘および訳出改善は歓迎

    C#でマルチスレッドのベストプラクティスって何かある?(What are the best practices with multithreading in C#?) - Qiita
    castaneai
    castaneai 2017/10/17
    マルチスレッドは人類には早すぎるため、やめとけ、使うとしても最もハイレベルの抽象を使え、というお話。