タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

c++とC++とthreadに関するclavierのブックマーク (4)

  • C++11のスレッド、アフィニティ、ハイパースレッディング | POSTD

    背景と導入 何十年もの間、CやC++の標準規格は、マルチスレッディングや並行処理を「その標準の範囲を超えたもの」として扱ってきました。標準規格の目的である”抽象機械”の力が及ばない、”対象依存”という影の世界においてです。メーリングリストやニュースグループの質問には並行処理に関するものが山ほど寄せられましたが、それらにすぐに突き返された回答は「C++はスレッドには関知しません」という何とも冷淡なものでした。この件によって当時のことを思い出す人々は、今後も絶えないでしょう。 しかしC++11の登場で、そんな状況に終止符が打たれたのです。C++標準化委員会は、時代の流れに乗らないと、この先C言語が取り残されてしまうと悟ったのでしょう。彼らはスレッドや同期メカニズム、アトミック操作、メモリモデルなどの存在に、ようやく気付いたわけです。そして標準規格として、C++コンパイラやライブラリのベンダーに

    C++11のスレッド、アフィニティ、ハイパースレッディング | POSTD
  • スレッドセーフという幻想と現実 - yohhoyの日記(別館)

    この記事はC++ Advent Calendar 2013の15日目にエントリしています。 内容はC++標準ライブラリとスレッドセーフに関する解説になります。 flickr / rennasverden もくじ What's スレッドセーフ? スレッドセーフという幻想 基型とデータ競合 C++標準ライブラリとデータ競合 C++標準ライブラリ:シーケンスコンテナ編 C++標準ライブラリ:連想コンテナ編 スレッドセーフ RELOADED 基的なスレッドセーフ保証 std::shared_ptr<T> std::rand() std::cout (文のみ約9000字) はじめに マルチスレッド対応の点では他言語に遅れを取っていたプログラミング言語C++ですが、C++11ではようやく標準ライブラリにスレッドサポートが追加されました。C++11スレッドサポートではスレッドクラスstd::thr

    スレッドセーフという幻想と現実 - yohhoyの日記(別館)
  • try-and-back-off アルゴリズム - melpon日記 - HaskellもC++もまともに扱えないへたれのページ

    C++11 には、複数の Lockable なオブジェクトをロックしてくれる std::lock 関数があります。 template<class L1, class L2, class... L3> void lock(L1& m1, L2& m2, L3&... m3); この関数の最大の特徴は、決してデッドロックしないことです。 そして、このデッドロックしないという要件を満たすために使われるアルゴリズムが、try-and-back-off アルゴリズムと呼ばれるものです。 今回はこの try-and-back-off アルゴリズムについて説明します。 (この記事には独自解釈が含まれているので、間違ってる部分とかあれば指摘して頂けると嬉しいです) デッドロックの条件 デッドロックは、正確ではないですが、大まかに言って以下の条件を満たすと発生します。 ロックを取得するために待機を行なう あ

    try-and-back-off アルゴリズム - melpon日記 - HaskellもC++もまともに扱えないへたれのページ
  • The "Double-Checked Locking is Broken" Declaration

    The "Double-Checked Locking is Broken" Declaration Signed by: David Bacon (IBM Research) Joshua Bloch (Javasoft), Jeff Bogda, Cliff Click (Hotspot JVM project), Paul Haahr, Doug Lea, Tom May, Jan-Willem Maessen, Jeremy Manson, John D. Mitchell (jGuru) Kelvin Nilsen, Bill Pugh, Emin Gun Sirer Double-Checked Locking is widely cited and used as an efficient method for implementing lazy initialization

  • 1