2017-02-02 8 views
1

私は2つのプロセスが文字列のベクトルを共有しています。C++:Boost:管理共有メモリにセマフォーロックが必要ですか?

  • プロセスAは、これがデータの破損を防ぐために、セマフォを必要としていた文字列を読み込み、ベクトル

から削除されますベクトル

  • プロセスBに文字列をプッシュしますか?ブーストはすでにmanaged_shared_memoryを使用してこれを処理していますか?

    ありがとうございました

  • 答えて

    0

    ブースト管理共有メモリでは、セマフォロックが必要です。そうしないと、プロセスが不正なデータを読み書きできなくなり、予期しない動作が発生します。 (セグメンテーション障害またはその他)。

    1

    私がブーストに伝えるものからは、それが処理されます。 This page should have all the information you need

    "Boost.Interprocessは、managed_shared_memoryまたはmanaged_mapped_fileを使用するプロセス間で管理共有メモリを提供します。2つのプロセスは同じメモリマップ可能リソースをマップし、そのオブジェクトとの間で読み書きを行います。

    関連する問題