2017-01-18 9 views

答えて

3

様々な異なるスマートポインタオブジェクトは、さまざまな程度のスレッド安全性を提供します。個々の実装のドキュメントを慎重にチェックして、どのレベルのスレッド安全性が提供されているかを確認する必要があります。

最もよくある質問は、具体的には約std::shared_ptrstd::weak_ptrです。これらは、個々のポインタインスタンスに対して標準的なスレッドセーフティを提供します。つまり、1つのスレッドはshared_ptrまたはweak_ptrにアクセスしてはならず、別のスレッドがまったく同じshared_ptrまたはweak_ptrオブジェクトを変更しているか、または変更している必要があります。ただし、同じオブジェクトを参照する別個のポインタには完全なスレッドセーフティがあります。したがって、あるスレッドはshared_ptrを変更できますが、もう1つのスレッドは寿命がスマートポインタによって管理されている同じ基本オブジェクトにshared_ptrにアクセスしています。

+0

私は、あなたが言うように、別個の 'shared_ptr'インスタンスにスレッドセーフティを適用しますが、 – LWimsey

+0

@LWimsey yesで指し示されたオブジェクトには適用しないとします。 – Yakk

関連する問題