8
C ++ 11は、標準化されたメモリモデルを導入しました。どういう意味ですか?そして、それはC ++プログラミングにどのように影響しますか?
C ++ 11は標準化されたメモリモデルを導入しましたが、それは正確にはどういう意味ですか?そして、それはC ++プログラミングにどのように影響しますか? この記事(Herb Sutterを引用しているGavin Clarkeによる)は、 メモリモデルとは、C ++コードに、だれがコンパイラを作成したか、どのプラットフォームで実行しているかに関係なく、標準ライブラリが呼び出されるようになったことを意味します。さまざまなスレッドがプロセッサのメモリと通信する方法を制御する標準的な方法があります。 「標準にある異なるコア間で[コード]を分割することについて話しているときは、メモリモデルについて話している。人々がコードで行う次の仮定を破ることなく、メモリモデルを最適化する」とSutterは述べた。 まあ、私はこれとオンラインで利用可能な同様の段落を覚えることができます(私は誕生時から自分の記憶モデルを持っているので:P)。他の人からの質問への回答として投稿することもできますが、正直なところ、私は正確に理解できませんこの。 C ++プログラマーは以前にもマルチスレッドアプリケーションを開発していたのですが、POSIXスレッド、Windowsスレッド、C ++ 11スレッドのどれが重要なのでしょうか。メリットは何ですか?低レベルの詳細を理解したいと思います。 また、C ++ 11のメモリモデルは、C ++ 11のマルチスレッドサポートに何らかの形で関連していると感じています。もしそうなら、正確にはどうですか?なぜそれらを関連付ける必要があるのですか? マルチスレッドの内部がどのように機能するのか、および一般的にメモリモデルが何を意味するのかわからないので、これらの概念を理解してください。:-)